diff options
Diffstat (limited to 'lib/libc/sys/unlink.2')
-rw-r--r-- | lib/libc/sys/unlink.2 | 284 |
1 files changed, 0 insertions, 284 deletions
diff --git a/lib/libc/sys/unlink.2 b/lib/libc/sys/unlink.2 deleted file mode 100644 index 11fff875abad..000000000000 --- a/lib/libc/sys/unlink.2 +++ /dev/null @@ -1,284 +0,0 @@ -.\" Copyright (c) 1980, 1991, 1993 -.\" The Regents of the University of California. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" 3. Neither the name of the University nor the names of its contributors -.\" may be used to endorse or promote products derived from this software -.\" without specific prior written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" @(#)unlink.2 8.1 (Berkeley) 6/4/93 -.\" $FreeBSD$ -.\" -.Dd February 23, 2021 -.Dt UNLINK 2 -.Os -.Sh NAME -.Nm unlink , -.Nm unlinkat , -.Nm funlinkat -.Nd remove directory entry -.Sh LIBRARY -.Lb libc -.Sh SYNOPSIS -.In unistd.h -.Ft int -.Fn unlink "const char *path" -.Ft int -.Fn unlinkat "int dfd" "const char *path" "int flag" -.Ft int -.Fn funlinkat "int dfd" "const char *path" "int fd" "int flag" -.Sh DESCRIPTION -The -.Fn unlink -system call -removes the link named by -.Fa path -from its directory and decrements the link count of the -file which was referenced by the link. -If that decrement reduces the link count of the file -to zero, -and no process has the file open, then -all resources associated with the file are reclaimed. -If one or more process have the file open when the last link is removed, -the link is removed, but the removal of the file is delayed until -all references to it have been closed. -The -.Fa path -argument -may not be a directory. -.Pp -The -.Fn unlinkat -system call is equivalent to -.Fn unlink -or -.Fn rmdir -except in the case where -.Fa path -specifies a relative path. -In this case the directory entry to be removed is determined -relative to the directory associated with the file descriptor -.Fa dfd -instead of the current working directory. -.Pp -The values for -.Fa flag -are constructed by a bitwise-inclusive OR of flags from the following list, -defined in -.In fcntl.h : -.Bl -tag -width indent -.It Dv AT_REMOVEDIR -Remove the directory entry specified by -.Fa fd -and -.Fa path -as a directory, not a normal file. -.It Dv AT_RESOLVE_BENEATH -Only walk paths below the directory specified by the -.Ar fd -descriptor. -See the description of the -.Dv O_RESOLVE_BENEATH -flag in the -.Xr open 2 -manual page. -.El -.Pp -If -.Fn unlinkat -is passed the special value -.Dv AT_FDCWD -in the -.Fa fd -parameter, the current working directory is used and the behavior is -identical to a call to -.Fa unlink -or -.Fa rmdir -respectively, depending on whether or not the -.Dv AT_REMOVEDIR -bit is set in flag. -.Pp -The -.Fn funlinkat -system call can be used to unlink an already-opened file, unless that -file has been replaced since it was opened. -It is equivalent to -.Fn unlinkat -in the case where -.Fa path -is already open as the file descriptor -.Fa fd . -Otherwise, the path will not be removed and an error will be returned. -The -.Fa fd -can be set the -.Dv FD_NONE . -In that case -.Fn funlinkat -behaves exactly like -.Fn unlinkat . -.Sh RETURN VALUES -.Rv -std unlink -.Sh ERRORS -The -.Fn unlink -succeeds unless: -.Bl -tag -width Er -.It Bq Er ENOTDIR -A component of the path prefix is not a directory. -.It Bq Er EISDIR -The named file is a directory. -.It Bq Er ENAMETOOLONG -A component of a pathname exceeded 255 characters, -or an entire path name exceeded 1023 characters. -.It Bq Er ENOENT -The named file does not exist. -.It Bq Er EACCES -Search permission is denied for a component of the path prefix. -.It Bq Er EACCES -Write permission is denied on the directory containing the link -to be removed. -.It Bq Er ELOOP -Too many symbolic links were encountered in translating the pathname. -.It Bq Er EPERM -The named file is a directory. -.It Bq Er EPERM -The named file has its immutable, undeletable or append-only flag set, see the -.Xr chflags 2 -manual page for more information. -.It Bq Er EPERM -The parent directory of the named file has its immutable or append-only flag -set. -.It Bq Er EPERM -The directory containing the file is marked sticky, -and neither the containing directory nor the file to be removed -are owned by the effective user ID. -.It Bq Er EIO -An I/O error occurred while deleting the directory entry -or deallocating the inode. -.It Bq Er EINTEGRITY -Corrupted data was detected while reading from the file system. -.It Bq Er EROFS -The named file resides on a read-only file system. -.It Bq Er EFAULT -The -.Fa path -argument -points outside the process's allocated address space. -.It Bq Er ENOSPC -On file systems supporting copy-on-write or snapshots, there was not enough -free space to record metadata for the delete operation of the file. -.El -.Pp -In addition to the errors returned by the -.Fn unlink , -the -.Fn unlinkat -may fail if: -.Bl -tag -width Er -.It Bq Er EBADF -The -.Fa path -argument does not specify an absolute path and the -.Fa fd -argument is neither -.Dv AT_FDCWD -nor a valid file descriptor open for searching. -.It Bq Er ENOTEMPTY -The -.Fa flag -parameter has the -.Dv AT_REMOVEDIR -bit set and the -.Fa path -argument names a directory that is not an empty directory, -or there are hard links to the directory other than dot or -a single entry in dot-dot. -.It Bq Er ENOTDIR -The -.Fa flag -parameter has the -.Dv AT_REMOVEDIR -bit set and -.Fa path -does not name a directory. -.It Bq Er EINVAL -The value of the -.Fa flag -argument is not valid. -.It Bq Er ENOTDIR -The -.Fa path -argument is not an absolute path and -.Fa fd -is neither -.Dv AT_FDCWD -nor a file descriptor associated with a directory. -.It Bq Er ENOTCAPABLE -.Fa path -is an absolute path, -or contained a ".." component leading to a -directory outside of the directory hierarchy specified by -.Fa fd , -and the process is in capability mode or the -.Dv AT_RESOLVE_BENEATH -flag was specified. -.El -.Pp -In addition to the errors returned by -.Fn unlinkat , -.Fn funlinkat -may fail if: -.Bl -tag -width Er -.It Bq Er EDEADLK -The file descriptor is not associated with the path. -.El -.Sh SEE ALSO -.Xr chflags 2 , -.Xr close 2 , -.Xr link 2 , -.Xr rmdir 2 , -.Xr symlink 7 -.Sh STANDARDS -The -.Fn unlinkat -system call follows The Open Group Extended API Set 2 specification. -.Sh HISTORY -The -.Fn unlink -function appeared in -.At v1 . -The -.Fn unlinkat -system call appeared in -.Fx 8.0 . -The -.Fn funlinkat -system call appeared in -.Fx 13.0 . -.Pp -The -.Fn unlink -system call traditionally allows the super-user to unlink directories which -can damage the file system integrity. -This implementation no longer permits it. |