diff options
Diffstat (limited to 'lib/libc/sys/close.2')
-rw-r--r-- | lib/libc/sys/close.2 | 149 |
1 files changed, 0 insertions, 149 deletions
diff --git a/lib/libc/sys/close.2 b/lib/libc/sys/close.2 deleted file mode 100644 index 1a66e39..0000000 --- a/lib/libc/sys/close.2 +++ /dev/null @@ -1,149 +0,0 @@ -.\" Copyright (c) 1980, 1991, 1993, 1994 -.\" 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. All advertising materials mentioning features or use of this software -.\" must display the following acknowledgement: -.\" This product includes software developed by the University of -.\" California, Berkeley and its contributors. -.\" 4. 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. -.\" -.\" @(#)close.2 8.2 (Berkeley) 4/19/94 -.\" $Id$ -.\" -.Dd April 19, 1994 -.Dt CLOSE 2 -.Os BSD 4 -.Sh NAME -.Nm close -.Nd delete a descriptor -.Sh SYNOPSIS -.Fd #include <unistd.h> -.Ft int -.Fn close "int d" -.Sh DESCRIPTION -The -.Fn close -call deletes a descriptor from the per-process object -reference table. -If this is the last reference to the underlying object, the -object will be deactivated. -For example, on the last close of a file -the current -.Em seek -pointer associated with the file is lost; -on the last close of a -.Xr socket 2 -associated naming information and queued data are discarded; -on the last close of a file holding an advisory lock -the lock is released (see further -.Xr flock 2 ) . -.Pp -When a process exits, -all associated file descriptors are freed, but since there is -a limit on active descriptors per processes, the -.Fn close -function call -is useful when a large quantity of file descriptors are being handled. -.Pp -When a process forks (see -.Xr fork 2 ) , -all descriptors for the new child process reference the same -objects as they did in the parent before the fork. -If a new process is then to be run using -.Xr execve 2 , -the process would normally inherit these descriptors. Most -of the descriptors can be rearranged with -.Xr dup2 2 -or deleted with -.Fn close -before the -.Xr execve 2 -is attempted, but if some of these descriptors will still -be needed if the execve fails, it is necessary to arrange for them -to be closed if the execve succeeds. -For this reason, the call -.Dq Li fcntl(d, F_SETFD, 1) -is provided, -which arranges that a descriptor will be closed after a successful -execve; the call -.Dq Li fcntl(d, F_SETFD, 0) -restores the default, -which is to not close the descriptor. -.Sh IMPLEMENTATION NOTES -.Pp -In the non-threaded library -.Fn close -is implemented as the -.Va close -syscall. -.Pp -In the threaded library, the -.Va close -syscall is assembled to -.Fn _thread_sys_close -and -.Fn close -is implemented as a function which locks -.Va d -for read and write, then calls -.Fn _thread_sys_close . -Before returning, -.Fn close -unlocks -.Va d . -.Sh RETURN VALUES -Upon successful completion, a value of 0 is returned. -Otherwise, a value of -1 is returned and the global integer variable -.Va errno -is set to indicate the error. -.Sh ERRORS -.Fn Close -will fail if: -.Bl -tag -width Er -.It Bq Er EBADF -.Fa D -is not an active descriptor. -.It Bq Er EINTR -An interrupt was received. -.El -.Sh SEE ALSO -.Xr accept 2 , -.Xr execve 2 , -.Xr fcntl 2 , -.Xr flock 2 , -.Xr open 2 , -.Xr pipe 2 , -.Xr socket 2 , -.Xr socketpair 2 -.Sh STANDARDS -The -.Fn close -function call is expected to conform to -.St -p1003.1-90 . -.Sh HISTORY -A -.Fn close -function call appeared in -.At v7 . |