CLOSE(2)	    UNIX Programmer's Manual		 CLOSE(2)

     close - delete a descriptor

     int d;

     The close call deletes a descriptor from the per-process
     object reference table.  If this is the last reference to
     the underlying object, then it will be deactivated.  For
     example, on the last close of a file the current seek
     pointer associated with the file is lost; on the last close
     of a 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 flock(2)).

     A close of all of a process's descriptors is automatic on
     exit, but since there is a limit on the number of active
     descriptors per process, close is necessary for programs
     that deal with many descriptors.

     When a process forks (see 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 execve(2), the process would normally inherit
     these descriptors.  Most of the descriptors can be rear-
     ranged with dup2(2) or deleted with close before the execve
     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 ``fcntl(d, F_SETFD, 1)'' is provided, which
     arranges that a descriptor will be closed after a successful
     execve; the call ``fcntl(d, F_SETFD, 0)'' restores the
     default, which is to not close the descriptor.

     Upon successful completion, a value of 0 is returned.  Oth-
     erwise, a value of -1 is returned and the global integer
     variable errno is set to indicate the error.

     Close will fail if:

     [EBADF]	    D is not an active descriptor.

     accept(2), flock(2), open(2), pipe(2), socket(2), socket-
     pair(2), execve(2), fcntl(2)

Printed 11/26/99	  May 22, 1986				1

Generated: 2016-12-26
Generated by man2html V0.25
page hit count: 55
Valid CSS Valid XHTML 1.0 Strict