60 lines
2.2 KiB
Groff
60 lines
2.2 KiB
Groff
|
|
|
|
CLOSE(2) Minix Programmer's Manual CLOSE(2)
|
|
|
|
|
|
NAME
|
|
close - delete a descriptor
|
|
|
|
SYNOPSIS
|
|
#include <unistd.h>
|
|
|
|
int close(int d)
|
|
|
|
DESCRIPTION
|
|
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 TCP/IP descriptor 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 fcntl(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
|
|
rearranged 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, flags)''
|
|
is provided, that can be used to mark a descriptor "close on exec" by
|
|
setting the FD_CLOEXEC flag:
|
|
|
|
fcntl(d, F_SETFD, fcntl(d, F_GETFD) | FD_CLOEXEC);
|
|
|
|
RETURN VALUE
|
|
Upon successful completion, a value of 0 is returned. Otherwise, a value
|
|
of -1 is returned and the global integer variable errno is set to
|
|
indicate the error.
|
|
|
|
ERRORS
|
|
Close will fail if:
|
|
|
|
[EBADF] D is not an active descriptor.
|
|
|
|
SEE ALSO
|
|
open(2), pipe(2), execve(2), fcntl(2).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4BSD May 22, 1986 1
|
|
|