unlink(2) unlink(2)NAME unlink - remove directory entry SYNOPSIS int unlink(path) char *path; DESCRIPTION unlink removes the directory entry named by the path name referenced by path. When all links to a file have been removed and no process has the file open, the space occupied by the file is freed and the file ceases to exist. If one or more processes have the file open when the last link is removed, the removal is postponed until all references to the file have been closed. RETURN VALUE Upon successful completion, a value of 0 is returned. Oth- erwise, a value of -1 is returned and errno is set to indi- cate the error. ERRORS The named file is unlinked unless one or more of the follow- ing are true: [ENOTDIR] A component of the path prefix is not a direc- tory. [EPERM] A pathname contains a character with the high- order bit set. [ENAMETOOLONG] A component of a pathname exceeded NAME_MAX characters, or an entire pathname exceeded PATH_MAX. [ELOOP] Too many symbolic links were encountered in translating a pathname. [ENOENT] The named file does not exist. [EACCES] Search permission is denied for a component of the path prefix. [EACCES] Write permission is denied on the directory containing the link to be removed. [EISDIR] The named file is a directory. [EBUSY] The entry to be unlinked is the mount point for a mounted file system. April, 1990 1
unlink(2) unlink(2)[ETXTBSY] The entry to be unlinked is the last link to a pure procedure (shared text) file that is being executed. Note: If you are running an NFS system and you are accessing a shared binary re- motely, it is possible that you will not get this errno. [EROFS] The directory entry to be unlinked is part of a read-only file system. [EFAULT] path points outside the process's allocated ad- dress space. SEE ALSO rm(1), rmdir(1), close(2), link(2), open(2), rmdir(2). 2 April, 1990