summaryrefslogtreecommitdiffstats
path: root/man2/unlink.2
diff options
context:
space:
mode:
Diffstat (limited to 'man2/unlink.2')
-rw-r--r--man2/unlink.2298
1 files changed, 0 insertions, 298 deletions
diff --git a/man2/unlink.2 b/man2/unlink.2
deleted file mode 100644
index 7485a32..0000000
--- a/man2/unlink.2
+++ /dev/null
@@ -1,298 +0,0 @@
-.\" This manpage is Copyright (C) 1992 Drew Eckhardt;
-.\" and Copyright (C) 1993 Ian Jackson
-.\" and Copyright (C) 2006, 2014 Michael Kerrisk.
-.\"
-.\" SPDX-License-Identifier: Linux-man-pages-copyleft
-.\"
-.\" Modified 1993-07-24 by Rik Faith <faith@cs.unc.edu>
-.\" Modified 1996-09-08 by Arnt Gulbrandsen <agulbra@troll.no>
-.\" Modified 1997-01-31 by Eric S. Raymond <esr@thyrsus.com>
-.\" Modified 2001-05-17 by aeb
-.\" Modified 2004-06-23 by Michael Kerrisk <mtk.manpages@gmail.com>
-.\"
-.TH unlink 2 2024-02-18 "Linux man-pages 6.7"
-.SH NAME
-unlink, unlinkat \- delete a name and possibly the file it refers to
-.SH LIBRARY
-Standard C library
-.RI ( libc ", " \-lc )
-.SH SYNOPSIS
-.nf
-.B #include <unistd.h>
-.P
-.BI "int unlink(const char *" pathname );
-.P
-.BR "#include <fcntl.h> " "/* Definition of " AT_* " constants */"
-.B #include <unistd.h>
-.P
-.BI "int unlinkat(int " dirfd ", const char *" pathname ", int " flags );
-.fi
-.P
-.RS -4
-Feature Test Macro Requirements for glibc (see
-.BR feature_test_macros (7)):
-.RE
-.P
-.BR unlinkat ():
-.nf
- Since glibc 2.10:
- _POSIX_C_SOURCE >= 200809L
- Before glibc 2.10:
- _ATFILE_SOURCE
-.fi
-.SH DESCRIPTION
-.BR unlink ()
-deletes a name from the filesystem.
-If that name was the
-last link to a file and no processes have the file open, the file is
-deleted and the space it was using is made available for reuse.
-.P
-If the name was the last link to a file but any processes still have
-the file open, the file will remain in existence until the last file
-descriptor referring to it is closed.
-.P
-If the name referred to a symbolic link, the link is removed.
-.P
-If the name referred to a socket, FIFO, or device, the name for it is
-removed but processes which have the object open may continue to use
-it.
-.SS unlinkat()
-The
-.BR unlinkat ()
-system call operates in exactly the same way as either
-.BR unlink ()
-or
-.BR rmdir (2)
-(depending on whether or not
-.I flags
-includes the
-.B AT_REMOVEDIR
-flag)
-except for the differences described here.
-.P
-If the pathname given in
-.I pathname
-is relative, then it is interpreted relative to the directory
-referred to by the file descriptor
-.I dirfd
-(rather than relative to the current working directory of
-the calling process, as is done by
-.BR unlink ()
-and
-.BR rmdir (2)
-for a relative pathname).
-.P
-If the pathname given in
-.I pathname
-is relative and
-.I dirfd
-is the special value
-.BR AT_FDCWD ,
-then
-.I pathname
-is interpreted relative to the current working
-directory of the calling process (like
-.BR unlink ()
-and
-.BR rmdir (2)).
-.P
-If the pathname given in
-.I pathname
-is absolute, then
-.I dirfd
-is ignored.
-.P
-.I flags
-is a bit mask that can either be specified as 0, or by ORing
-together flag values that control the operation of
-.BR unlinkat ().
-Currently, only one such flag is defined:
-.TP
-.B AT_REMOVEDIR
-By default,
-.BR unlinkat ()
-performs the equivalent of
-.BR unlink ()
-on
-.IR pathname .
-If the
-.B AT_REMOVEDIR
-flag is specified, it
-performs the equivalent of
-.BR rmdir (2)
-on
-.IR pathname .
-.P
-See
-.BR openat (2)
-for an explanation of the need for
-.BR unlinkat ().
-.SH RETURN VALUE
-On success, zero is returned.
-On error, \-1 is returned, and
-.I errno
-is set to indicate the error.
-.SH ERRORS
-.TP
-.B EACCES
-Write access to the directory containing
-.I pathname
-is not allowed for the process's effective UID, or one of the
-directories in
-.I pathname
-did not allow search permission.
-(See also
-.BR path_resolution (7).)
-.TP
-.B EBUSY
-The file
-.I pathname
-cannot be unlinked because it is being used by the system
-or another process;
-for example, it is a mount point
-or the NFS client software created it to represent an
-active but otherwise nameless inode ("NFS silly renamed").
-.TP
-.B EFAULT
-.I pathname
-points outside your accessible address space.
-.TP
-.B EIO
-An I/O error occurred.
-.TP
-.B EISDIR
-.I pathname
-refers to a directory.
-(This is the non-POSIX value returned since Linux 2.1.132.)
-.TP
-.B ELOOP
-Too many symbolic links were encountered in translating
-.IR pathname .
-.TP
-.B ENAMETOOLONG
-.IR pathname " was too long."
-.TP
-.B ENOENT
-A component in
-.I pathname
-does not exist or is a dangling symbolic link, or
-.I pathname
-is empty.
-.TP
-.B ENOMEM
-Insufficient kernel memory was available.
-.TP
-.B ENOTDIR
-A component used as a directory in
-.I pathname
-is not, in fact, a directory.
-.TP
-.B EPERM
-The system does not allow unlinking of directories,
-or unlinking of directories requires privileges that the
-calling process doesn't have.
-(This is the POSIX prescribed error return;
-as noted above, Linux returns
-.B EISDIR
-for this case.)
-.TP
-.BR EPERM " (Linux only)"
-The filesystem does not allow unlinking of files.
-.TP
-.BR EPERM " or " EACCES
-The directory containing
-.I pathname
-has the sticky bit
-.RB ( S_ISVTX )
-set and the process's effective UID is neither the UID of the file to
-be deleted nor that of the directory containing it, and
-the process is not privileged (Linux: does not have the
-.B CAP_FOWNER
-capability).
-.TP
-.B EPERM
-The file to be unlinked is marked immutable or append-only.
-(See
-.BR ioctl_iflags (2).)
-.TP
-.B EROFS
-.I pathname
-refers to a file on a read-only filesystem.
-.P
-The same errors that occur for
-.BR unlink ()
-and
-.BR rmdir (2)
-can also occur for
-.BR unlinkat ().
-The following additional errors can occur for
-.BR unlinkat ():
-.TP
-.B EBADF
-.I pathname
-is relative but
-.I dirfd
-is neither
-.B AT_FDCWD
-nor a valid file descriptor.
-.TP
-.B EINVAL
-An invalid flag value was specified in
-.IR flags .
-.TP
-.B EISDIR
-.I pathname
-refers to a directory, and
-.B AT_REMOVEDIR
-was not specified in
-.IR flags .
-.TP
-.B ENOTDIR
-.I pathname
-is relative and
-.I dirfd
-is a file descriptor referring to a file other than a directory.
-.SH STANDARDS
-POSIX.1-2008.
-.SH HISTORY
-.TP
-.BR unlink ()
-SVr4, 4.3BSD, POSIX.1-2001.
-.\" SVr4 documents additional error
-.\" conditions EINTR, EMULTIHOP, ETXTBSY, ENOLINK.
-.TP
-.BR unlinkat ()
-POSIX.1-2008.
-Linux 2.6.16,
-glibc 2.4.
-.SS glibc
-On older kernels where
-.BR unlinkat ()
-is unavailable, the glibc wrapper function falls back to the use of
-.BR unlink ()
-or
-.BR rmdir (2).
-When
-.I pathname
-is a relative pathname,
-glibc constructs a pathname based on the symbolic link in
-.I /proc/self/fd
-that corresponds to the
-.I dirfd
-argument.
-.SH BUGS
-Infelicities in the protocol underlying NFS can cause the unexpected
-disappearance of files which are still being used.
-.SH SEE ALSO
-.BR rm (1),
-.BR unlink (1),
-.BR chmod (2),
-.BR link (2),
-.BR mknod (2),
-.BR open (2),
-.BR rename (2),
-.BR rmdir (2),
-.BR mkfifo (3),
-.BR remove (3),
-.BR path_resolution (7),
-.BR symlink (7)