summaryrefslogtreecommitdiffstats
path: root/man2/unlink.2
diff options
context:
space:
mode:
Diffstat (limited to 'man2/unlink.2')
-rw-r--r--man2/unlink.2149
1 files changed, 149 insertions, 0 deletions
diff --git a/man2/unlink.2 b/man2/unlink.2
new file mode 100644
index 000000000..901d8b139
--- /dev/null
+++ b/man2/unlink.2
@@ -0,0 +1,149 @@
+.\" Hey Emacs! This file is -*- nroff -*- source.
+.\"
+.\" This manpage is Copyright (C) 1992 Drew Eckhardt;
+.\" 1993 Ian Jackson.
+.\"
+.\" Permission is granted to make and distribute verbatim copies of this
+.\" manual provided the copyright notice and this permission notice are
+.\" preserved on all copies.
+.\"
+.\" Permission is granted to copy and distribute modified versions of this
+.\" manual under the conditions for verbatim copying, provided that the
+.\" entire resulting derived work is distributed under the terms of a
+.\" permission notice identical to this one.
+.\"
+.\" Since the Linux kernel and libraries are constantly changing, this
+.\" manual page may be incorrect or out-of-date. The author(s) assume no
+.\" responsibility for errors or omissions, or for damages resulting from
+.\" the use of the information contained herein. The author(s) may not
+.\" have taken the same level of care in the production of this manual,
+.\" which is licensed free of charge, as they might when working
+.\" professionally.
+.\"
+.\" Formatted or processed versions of this manual, if unaccompanied by
+.\" the source, must acknowledge the copyright and authors of this work.
+.\"
+.\" 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 <mtk16@ext.canterbury.ac.nz>
+.\"
+.TH UNLINK 2 2004-06-23 "Linux 2.6.7" "Linux Programmer's Manual"
+.SH NAME
+unlink \- delete a name and possibly the file it refers to
+.SH SYNOPSIS
+.B #include <unistd.h>
+.sp
+.BI "int unlink(const char *" pathname );
+.SH DESCRIPTION
+.B 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.
+
+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.
+
+If the name referred to a symbolic link the link is removed.
+
+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.
+.SH "RETURN VALUE"
+On success, zero is returned. On error, \-1 is returned, and
+.I errno
+is set appropriately.
+.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
+.IR pathname
+did not allow search permission.
+(See also
+.BR path_resolution (2).)
+.TP
+.BR EBUSY " (not on Linux)"
+The file
+.I pathname
+cannot be unlinked because it is being used by the system
+or another process and the implementation considers this an error.
+.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 by Linux since 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
+current process doesn't have.
+(This is the POSIX prescribed error return.)
+.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 EROFS
+.I pathname
+refers to a file on a read-only filesystem.
+.SH "CONFORMING TO"
+SVr4, SVID, POSIX, X/OPEN, 4.3BSD. SVr4 documents additional error
+conditions EINTR, EMULTIHOP, ETXTBSY, ENOLINK.
+.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 chmod (2),
+.BR link (2),
+.BR mknod (2),
+.BR open (2),
+.BR path_resolution (2),
+.BR rename (2),
+.BR rmdir (2),
+.BR mkfifo (3),
+.BR remove (3)