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

Reply via email to