diff options
Diffstat (limited to 'static/openbsd/man2/close.2')
| -rw-r--r-- | static/openbsd/man2/close.2 | 133 |
1 files changed, 133 insertions, 0 deletions
diff --git a/static/openbsd/man2/close.2 b/static/openbsd/man2/close.2 new file mode 100644 index 00000000..d75d5a05 --- /dev/null +++ b/static/openbsd/man2/close.2 @@ -0,0 +1,133 @@ +.\" $OpenBSD: close.2,v 1.19 2022/04/15 03:04:52 deraadt Exp $ +.\" $NetBSD: close.2,v 1.5 1995/02/27 12:32:14 cgd Exp $ +.\" +.\" 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. 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 +.\" +.Dd $Mdocdate: April 15 2022 $ +.Dt CLOSE 2 +.Os +.Sh NAME +.Nm close +.Nd delete a descriptor +.Sh SYNOPSIS +.In unistd.h +.Ft int +.Fn close "int d" +.Sh DESCRIPTION +The +.Fn close +call deletes a descriptor +.Fa d +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; +and on the last close of a file holding an advisory lock, +the lock is released (see +.Xr flock 2 ) . +However, the semantics of System V and +.St -p1003.1-88 +dictate that all +.Xr fcntl 2 +advisory record locks associated with a file for a given process +are removed when +.Em any +file descriptor for that file is closed by that process. +.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 image is to then 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 since some of these descriptors may still +be needed should the +.Xr execve 2 +fail, it is necessary to arrange for them +to be closed when the +.Xr execve 2 +succeeds. +For this reason, the call +.Fn fcntl d F_SETFD FD_CLOEXEC +is provided, +which arranges that a descriptor will be closed after a successful +.Xr execve 2 ; +the call +.Fn fcntl d F_SETFD 0 +restores the default, +which is to not close the descriptor. +.Sh RETURN VALUES +.Rv -std +.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. +.It Bq Er EIO +An I/O error occurred while writing to the file system. +.El +.Sh SEE ALSO +.Xr accept 2 , +.Xr closefrom 2 , +.Xr dup2 2 , +.Xr execve 2 , +.Xr fcntl 2 , +.Xr flock 2 , +.Xr open 2 , +.Xr pipe 2 , +.Xr socket 2 , +.Xr socketpair 2 +.Sh STANDARDS +.Fn close +conforms to +.St -p1003.1-2008 . +.Sh HISTORY +The +.Fn close +system call first appeared in +.At v1 . |
