.\" Copyright (c) 1983 Regents of the University of California.
.\" All rights reserved. The Berkeley software License Agreement
.\" specifies the terms and conditions for redistribution.
.\" @(#)select.2 6.2 (Berkeley) %G%
select \- synchronous i/o multiplexing
nfound = select(nfds, readfds, writefds, exceptfds, timeout)
int nfound, nfds, *readfds, *writefds, *exceptfds;
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
i.e. the bits from 0 through
in the masks are examined.
returns, in place, a mask of those descriptors that are ready.
The total number of bits set in all the masks 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 'one' bits that 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.
A signal was delivered before the time limit expired and
before any of the selected events occurred.
The specified time limit is unacceptable. One of its components is
accept(2), connect(2), read(2), write(2), recv(2), send(2), getdtablesize(2)
The descriptor masks are always modified on return, even
if the call returns as the result of the timeout.