select
POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/select.html
Gnulib module: select
Portability problems fixed by Gnulib:
select can only be
called on descriptors created by the socket function, not on regular
file descriptors.
accept are not
placed in errno, and WSAGetLastError must be used instead.
nfds argument is 0 on some platforms:
Interix 3.5.
Portability problems not fixed by Gnulib:
select with a timeout, some implementations modify the
timeout parameter so that upon return from the function, it contains the
amount of time not slept. Other implementations leave the timeout parameter
unmodified.
select can only be called on descriptors created by the
socket function, not on regular file descriptors.
select replacement might
return 0 even before the timeout has passed. Programs using it with pipes can
thus busy wait.
select applied to a file descriptor opened
for reading and associated with /dev/null hangs, waiting for input,
when instead it should return immediately.
select
may fail, setting errno to EBADF.
<unistd.h>, not <sys/select.h>,
on some platforms:
IRIX 5.3.