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.1 (Berkeley) 05/15/85
All rights reserved. The Berkeley software License Agreement
specifies the terms and conditions for redistribution.
@(#)select.2 6.1 (Berkeley) 05/15/85
SELECT 2 ""
C 5 NAME
select - synchronous i/o multiplexing
SYNOPSIS
#include <sys/time.h>nfound = select(nfds, readfds, writefds, exceptfds, timeout) int nfound, nfds, *readfds, *writefds, *exceptfds; struct timeval *timeout;
DESCRIPTION
Select examines the i/o descriptors specified by the bit masks
readfds , writefds , and
exceptfds to see if they are ready for reading, writing, or have an exceptional
condition pending, respectively.
File descriptor
f is represented by the bit \*(lq1<<f\*(rq in
the mask.
Nfds desciptors are checked,
i.e. the bits from 0 through
nfds -1 in the masks are examined.
Select returns, in place, a mask of those descriptors which are ready.
The total number of bits set in all the masks 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 exceptfds may be given as 0 if no descriptors are of interest.
"RETURN VALUE
Select returns the number of 'one' bits 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:
15 [EBADF] One of the bit masks specified an invalid descriptor.
15 [EINTR] An signal was delivered before any of the selected for events occurred or the time limit expired.
SEE ALSO
accept(2), connect(2), read(2), write(2), recv(2), send(2), getdtablesize(2)
BUGS
The descriptor masks are always modified on return, even
if the call returns as the result of the timeout.