unlink.2 (2010 09)

u
unlink(2) unlink(2)
NAME
unlink - remove directory entry; delete file
SYNOPSIS
#include <unistd.h>
int unlink(const char *path);
DESCRIPTION
The unlink() system call removes the directory entry named by the path name pointed to 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, only the directory entry is removed immediately so that processes that do not already have the
file open cannot access the file. After all processes close their references to the file, if there are no more
links to the file, the space occupied by the file is then freed and the file ceases to exist.
RETURN VALUE
unlink() returns the following values:
0 Successful completion.
-1 Failure. errno is set to indicate the error.
ERRORS
If
unlink() fails, errno is set to one of the following values:
[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.
[EACCES] The process does not have read/write access permission to the parent direc-
tory.
[EBUSY] The entry to be unlinked is the mount point for a mounted file system.
[EFAULT] path points outside the process’s allocated address space. The reliable
detection of this error is implementation dependent.
[ELOOP] Too many symbolic links were encountered in translating the path name.
[ENAMETOOLONG] The length of the specified path name exceeds
PATH_MAX bytes, or the
length of a component of the path name exceeds
NAME_MAX bytes while
_POSIX_NO_TRUNC is in effect.
[ENOENT] The named file does not exist (for example, path is null or a component of
path does not exist).
[ENOTDIR] A component of the path prefix is not a directory.
[EPERM] The directory containing the file to be removed has the sticky bit set and
neither the containing directory nor the file to be removed are owned by the
effective user ID.
[EPERM] The named file is a directory and the effective user ID is not a user with
appropriate privileges. Some file systems return this error whenever the
named file is a directory, regardless of the user ID.
[EROFS] The directory entry to be unlinked is part of a read-only file system.
[ETXTBSY] The entry to be unlinked is the last link to a pure procedure (shared text)
file that is being executed.
WARNINGS
If
unlink() is used on a directory that is not empty (contains files other than . and ..), the directory
is unlinked, the files become orphans, and the directory link count is left with an inaccurate value unless
they are linked by some other directory.
If
unlink() is used on a directory that is empty (contains only the files . and ..), the directory is
unlinked, but the parent directory’s link count is left with an inaccurate value.
HP-UX 11i Version 3: September 2010 1 Hewlett-Packard Company 1

Summary of content (2 pages)