int unlink (
const char *path );
Interfaces documented on this reference page conform to industry standards as follows:
unlink(): POSIX.1, XPG4, XPG4-UNIX
Refer to the standards(5) reference page for more information about industry standards and associated tags.
The unlink() function removes the directory entry specified by the path parameter and, if the entry is a hard link, decrements the link count of the file referenced by the link.
When all links to a file are removed and no process has the file open or mapped, all resources associated with the file are reclaimed, and the file is no longer accessible. If one or more processes have the file open or mapped when the last link is removed, the link is removed before the unlink() function returns, but the removal of the file contents is postponed until all open or map references to the file are removed. If the path parameter names a symbolic link, the symbolic link itself is removed.
A hard link to a directory cannot be unlinked.
A process must have write access to the parent directory of the file to be unlinked with respect to all access policies.
Upon successful completion, the unlink() function marks for update the st_ctime and st_mtime fields of the directory which contained the link. If the file's link count is not 0 (zero), the st_ctime field of the file is also marked for update.
Upon successful completion, a value of 0 (zero) is returned. If the unlink() function fails, a value of -1 is returned, the named file is not changed, and errno is set to indicate the error.
If the unlink() function fails, the named file is not unlinked and errno may be set to one of the following values: Search permission is denied for a component of the path prefix, or write permission is denied on the directory containing the link to be removed. The entry to be unlinked is the mount point for a mounted file system. The path parameter is an invalid address. Too many links were encountered in translating path. The length of the path parameter exceeds PATH_MAX or a pathname component is longer than NAME_MAX. The named file does not exist or the path parameter points to an empty string. A component of the path prefix is not a directory. The named file is a directory.
[Digital] For NFS file access, if the link() function fails, errno may also be set to one of the following values: Indicates either that the request was for a write access to a file but the specified filename was actually a directory, or that the function was trying to rename a directory as a file. Indicates either that the system file table is full, or that there are too many files currently open in the system. Indicates a stale NFS file handle. A client cannot delete a link because the server has unmounted or unexported the remote directory; or the directory that contains an file was either unmounted or unexported by the server.
Functions: close(2), link(2), open(2), rmdir(2)
Standards: standards(5) delim off