Manual Page Result
0
Command: unlink | Section: 2 | Source: Digital UNIX | File: unlink.2.gz
unlink(2) System Calls Manual unlink(2)
NAME
unlink - Removes a directory entry
SYNOPSIS
#include <unistd.h>
int unlink ( const char *path );
STANDARDS
Interfaces documented on this reference page conform to industry stan-
dards as follows:
unlink(): POSIX.1, XPG4, XPG4-UNIX
Refer to the standards(5) reference page for more information about in-
dustry standards and associated tags.
PARAMETERS
Specifies the directory entry to be removed.
DESCRIPTION
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 con-
tents is postponed until all open or map references to the file are re-
moved. 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.
System V Compatibility
[Digital] Any attempt to unlink non-empty directories in the System V
habitat will cause the unlink call to fail and set errno to ENOTEMPTY,
even if the process has superuser privileges. This error behavior is
provided in the System V habitat to comply with the SVID-2 industry
standard.
RETURN VALUES
Upon successful completion, a value of 0 (zero) is returned. If the un-
link() function fails, a value of -1 is returned, the named file is not
changed, and errno is set to indicate the error.
ERRORS
If the unlink() function fails, the named file is not unlinked and er-
rno may be set to one of the following values: Search permission is de-
nied 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 para-
meter is an invalid address. Too many links were encountered in trans-
lating 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.
The S_ISVTX flag is set on the directory containing the file to
be deleted, and the caller is not the file owner. The entry to
be unlinked is part of a read-only file system.
[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 di-
rectory 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 be-
cause the server has unmounted or unexported the remote directory; or
the directory that contains an file was either unmounted or unexported
by the server.
RELATED INFORMATION
Functions: close(2), link(2), open(2), rmdir(2)
Commands: rm(1)
Standards: standards(5) delim off
unlink(2)