Typo in <sys/select.h>?
Wed Jul 6 14:22:47 GMT 2022
On Jul 6 16:15, Corinna Vinschen wrote:
> On Jul 6 15:01, Jon Turney wrote:
> > Remember that 64 is MAXIMUM_WAIT_OBJECTS for WaitForMultipleObjects(), the
> > underlying Win32 API used to implement select(), so using more than 64 hits
> > some complex code to work around that...
> This isn't what FD_SETSIZE is about. FD_SETSIZE does *NOT* define the
> maximum count of fd's in an fd_set.
> It defines the maximum fd number usable in an fd_set.
> So if FD_SETSIZE is defined low enough:
> #define FD_SETSIZE 3
> #include <sys/select.h>
> /* Only fd's 0, 1, and 2 will be allowed in this fd_set */
> fd_set set;
> FD_ZERO (&set);
> /* This will probaly set fd to 3 */
> fd = open ("foo", O_RDONLY);
> /* So this will (hopefully) fail */
> FD_SET (fd, &set);
Right, this isn't quite how it works, given fd_set is a bitfield using
unsigned long as basetype under the hood. This should just outline
the idea behind FD_SETSIZE.
More information about the Cygwin