home *** CD-ROM | disk | FTP | other *** search
-
- CLOSE(2) UNIX Programmer's Manual CLOSE(2)
-
- NNAAMMEE
- cclloossee - delete a descriptor
-
- SSYYNNOOPPSSIISS
- ##iinncclluuddee <<uunniissttdd..hh>>
-
- _i_n_t
- cclloossee(_i_n_t _d)
-
- DDEESSCCRRIIPPTTIIOONN
- The cclloossee() call deletes a descriptor from the perprocess object refer
- ence 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 _s_e_e_k pointer associated with the file is lost; on the last close
- of a socket(2) associated naming information and queued data are discard
- ed; on the last close of a file holding an advisory lock the lock is re
- leased (see further flock(2)).
-
- When a process exits, all associated file descriptors are freed, but
- since there is a limit on active descriptors per processes, the cclloossee()
- function call is useful when a large quanitity of file descriptors are
- being handled.
-
- 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
- rearranged with dup2(2) or deleted with cclloossee() before the execve is at
- tempted, but if some of these descriptors will still be needed if the ex
- ecve fails, it is necessary to arrange for them to be closed if the ex
- ecve succeeds. For this reason, the call ``fcntl(d, F_SETFD, 1)'' is
- provided, which arranges that a descriptor will be closed after a suc
- cessful execve; the call ``fcntl(d, F_SETFD, 0)'' restores the default,
- which is to not close the descriptor.
-
- RREETTUURRNN VVAALLUUEESS
- Upon successful completion, a value of 0 is returned. Otherwise, a value
- of 1 is returned and the global integer variable _e_r_r_n_o is set to indi
- cate the error.
-
- EERRRROORRSS
- CClloossee() will fail if:
-
- [EBADF] _D is not an active descriptor.
-
- [EINTR] An interupt was received.
-
- SSEEEE AALLSSOO
- accept(2), flock(2), open(2), pipe(2), socket(2), socketpair(2),
- execve(2), fcntl(2)
-
- SSTTAANNDDAARRDDSS
- CClloossee() conforms to IEEE Std 1003.11988 (``POSIX'').
-
- 4th Berkeley Distribution March 10, 1991 1
-
-
-
-
-
-
-
-
-