 |
Index for Section 2 |
|
 |
Alphabetical listing for U |
|
 |
Bottom of page |
|
unlink(2)
NAME
unlink - Remove a directory entry
SYNOPSIS
#include <unistd.h>
int unlink(
const char *path );
STANDARDS
Interfaces documented on this reference page conform to industry standards
as follows:
unlink(): XSH4.0, XSH4.2, XSH5.0
Refer to the standards(5) reference page for more information about
industry standards and associated tags.
PARAMETERS
path
Specifies the directory entry to be removed.
DESCRIPTION
When the directory entry is a hard link, the unlink() function removes it
and decrements the link count of the file referenced by the link. When the
directory entry is a symbolic link, the unlink() function removes the
symbolic link and does not affect any file or directory named by the
contents of the symbolic 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.
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
[Tru64 UNIX] 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 specification.
RETURN VALUES
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.
ERRORS
If the unlink() function fails, the named file is not unlinked and errno
may be set to one of the following values:
[EACCES]
One of the following conditions was encountered:
· 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 S_ISVTX option is set on the directory containing the file
referred to by the path argument and the caller is not the file
owner, nor is the caller the directory owner, nor does the caller
have appropriate privileges.
[EBUSY]
One of the following conditions was encountered:
· The entry to be unlinked is the mount point for a mounted file
system.
· The file named by path is a named STREAM.
[EFAULT]
[Tru64 UNIX] The path parameter is an invalid address.
[ELOOP]
Too many symbolic links were encountered in translating path.
[ENAMETOOLONG]
The length of the path parameter exceeds PATH_MAX or a pathname
component is longer than NAME_MAX; or, pathname resolution of a
symbolic link produced an intermediate result whose length exceeds
PATH_MAX.
[ENOENT]
The named file does not exist or the path parameter points to an empty
string.
[ENOTDIR]
A component of the path prefix is not a directory.
[EPERM]
One of the following conditions was encountered:
· The named file is a directory.
· The S_ISVTX option is set on the directory containing the file
referred to by the path argument and the caller is not the file
owner, nor is the caller the directory owner, nor does the caller
have appropriate privileges.
[EROFS]
The entry to be unlinked is part of a read-only file system.
[ETXTBUSY]
The entry to be unlinked is the last directory entry to a pure
procedure (shared text) file that is being executed.
[Tru64 UNIX] For NFS file access, if the link() function fails, errno may
also be set to one of the following values:
[EISDIR]
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.
[ENFILE]
Indicates either that the system file table is full, or that there are
too many files currently open in the system.
[ESTALE]
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.
SEE ALSO
Commands: link(1), rm(1), unlink(1)
Functions: close(2), link(2), open(2), rmdir(2)
Standards: standards(5)
 |
Index for Section 2 |
|
 |
Alphabetical listing for U |
|
 |
Top of page |
|