Annotation of cci/usr/src/man/man2/close.2, revision 1.1

1.1     ! root        1: .TH CLOSE 2 "27 July 1983"
        !             2: .UC 4
        !             3: .SH NAME
        !             4: close \- delete a descriptor
        !             5: .SH SYNOPSIS
        !             6: .B close(d)
        !             7: .br
        !             8: .B "int d;"
        !             9: .SH DESCRIPTION
        !            10: The
        !            11: \fIclose\fP call deletes a descriptor from the per-process object
        !            12: reference table.
        !            13: If this is the last reference to the underlying object, then
        !            14: it will be deactivated.
        !            15: For example, on the last close of a file
        !            16: the current \fIseek\fP pointer associated with the file is lost;
        !            17: on the last close of a
        !            18: .IR socket (2)
        !            19: associated naming information and queued data are discarded;
        !            20: on the last close of a file holding an advisory lock
        !            21: the lock is released; see further
        !            22: .IR flock (2).
        !            23: .PP
        !            24: A close of all of a process's descriptors is automatic on
        !            25: .IR exit ,
        !            26: but since
        !            27: there is a limit on the number of active descriptors per process,
        !            28: .I close
        !            29: is necessary for programs which deal with many descriptors.
        !            30: .PP
        !            31: When a process forks (see
        !            32: .IR fork (2)),
        !            33: all descriptors for the new child process reference the same
        !            34: objects as they did in the parent before the fork.
        !            35: If a new process is then to be run using
        !            36: .IR execve (2),
        !            37: the process would normally inherit these descriptors.  Most
        !            38: of the descriptors can be rearranged with
        !            39: .IR dup2 (2)
        !            40: or deleted with
        !            41: .I close
        !            42: before the
        !            43: .I execve
        !            44: is attempted, but if some of these descriptors will still
        !            45: be needed if the execve fails, it is necessary to arrange for them
        !            46: to be closed if the execve succeeds.
        !            47: For this reason, the call ``fcntl(d, F_SETFD, 1)'' is provided
        !            48: which arranges that a descriptor will be closed after a successful
        !            49: execve; the call ``fcntl(d, F_SETFD, 0)'' restores the default,
        !            50: which is to not close the descriptor.
        !            51: .SH "RETURN VALUE
        !            52: Upon successful completion, a value of 0 is returned.
        !            53: Otherwise, a value of \-1 is returned and the global integer variable
        !            54: .I errno
        !            55: is set to indicate the error.
        !            56: .SH ERRORS
        !            57: .I Close
        !            58: will fail if:
        !            59: .TP 15
        !            60: [EBADF]
        !            61: \fID\fP is not an active descriptor.
        !            62: .SH "SEE ALSO"
        !            63: accept(2), flock(2), open(2), pipe(2), socket(2), socketpair(2),
        !            64: execve(2), fcntl(2)

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.