diff options
Diffstat (limited to 'man2/unlink.2')
-rw-r--r-- | man2/unlink.2 | 149 |
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) |