select \- synchronous i/o multiplexing
nfds = select(nfds, readfds, writefds, execptfds, timeout)
int nfds, *readfds, *writefds, *execptfds;
examines the i/o descriptors specified by the bit masks
to see if they are ready for reading, writing, or have an exceptional
condition pending, respectively.
is represented by the bit \*(lq1<<f\*(rq in
returns, in place, a mask of those descriptors which are ready.
The total number of ready descriptors is returned in
is a non-zero pointer, it specifies a maximum interval to wait for the
selection to complete. If
is a zero pointer, the select blocks indefinitely. To affect a poll, the
argument should be non-zero, pointing to a zero valued timeval structure.
may be given as 0 if no descriptors are of interest.
returns the number of descriptors which are contained in
or \-1 if an error occurred.
If the time limit expires then
An error return from \fIselect\fP indicates:
One of the bit masks specified an invalid descriptor.
An signal was delivered before any of the selected for
events occured or the time limit expired.
accept(2), connect(2), read(2), write(2), recv(2), send(2)