select(2N) select(2N)
NAME
select - synchronous I/O multiplexing
SYNOPSIS
#include <sys/time.h>
nfound = select(nfds, readfds, writefds, execptfds, timeout)
int nfound, nfds, *readfds, *writefds, *execptfds;
struct timeval *timeout;
cc ... -lnet
DESCRIPTION
select examines the i/o descriptors specified by the bit
masks readfds, writefds, and execptfds to see if they are
ready for reading, writing, or have an exceptional condition
pending, respectively. File descriptor f is represented by
the bit 1<<f in the mask. nfds descriptors are checked,
i.e. the bits from 0 through nfds-1 in the masks are
examined. returns, in place, a mask of those descriptors
which are ready. The total number of ready descriptors is
returned in nfound.
If timeout is a non-zero pointer, it specifies a maximum
interval to wait for the selection to complete. If timeout
is a zero pointer, the select blocks indefinitely. To
affect a poll, the timeout argument should be non-zero,
pointing to a zero valued timeval structure.
Any of readfds, writefds, and execptfds may be given as 0 if
no descriptors are of interest.
RETURN VALUE
select returns the number of descriptors which are contained
in the bit masks, or -1 if an error occurred. If the time
limit expires then select returns 0.
ERRORS
An error return from select indicates:
[EBADF] One of the bit masks specified an invalid
descriptor.
[EINTR] A signal was delivered before any of the
selected for events occurred or the time
limit expired.
LINKING
This library is accessed by specifying -lnet as the last
argument to the compile line, e.g.:
cc -o prog prog.c -lnet
Page 1 (last mod. 1/14/87)
select(2N) select(2N)
SEE ALSO
accept(2N), connect(2N), readv(2), recv(2N), send(2N),
writev(2).
BUGS
The descriptor masks are always modified on return, even if
the call returns as the result of the timeout.
Page 2 (last mod. 1/14/87)