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. Corinna -- Problem reports: https://cygwin.com/problems.html FAQ: https://cygwin.com/faq/ Documentation: https://cygwin.com/docs.html Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple