select
======

POSIX specification: http://www.opengroup.org/onlinepubs/9699919799/functions/select.html

Gnulib module: select

Portability problems fixed by Gnulib:

  * On Windows platforms (excluding Cygwin), select can only be called on descriptors created by the socket function, not on regular file descriptors.

  * On Windows platforms (excluding Cygwin), error codes for accept are not placed in errno, and WSAGetLastError must be used instead.

  * This function fails when the nfds argument is 0 on some platforms: Interix 3.5.

Portability problems not fixed by Gnulib:

  * When you call 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.

  * On BeOS, select can only be called on descriptors created by the socket function, not on regular file descriptors.

  * On Solaris 2.6 and older, select applied to a file descriptor opened for reading and associated with /dev/null hangs, waiting for input, when instead it should return immediately.

  * On Linux, when some file descriptor refers to a regular file, select may fail, setting errno to EBADF.