On 6/23/2016 6:54 AM, Steven Bardwell wrote:


Here is a "program" that shows the issue I am worried about. It is so simple 
that I must be overlooking something really obvious:

#include <stdio.h>
#undef FD_SETSIZE
#define FD_SETSIZE 256
#include <sys/types.h>
#include <sys/select.h>

main()
{
        fd_set rfds;
        fprintf(stdout, "FD_SETSIZE=%d\n", FD_SETSIZE);
        fprintf(stdout, "sizeof(fd_set)=%d\n", sizeof(fd_set));
}

Steve Bardwell



I don't know if this is still the case, but when I looked into this years ago I 
found that it was not possible to change the size of the fd set in linux, it's 
fixed at 1024 (generally), unless you rebuild the kernel.

Secondly, in the windows api, their version of an fd_set is more like a poll() 
implementation, you can fake out any size you want since the size of the array 
is the first entry.

I can't speak for the cygwin implementations, but if they offer poll() or, 
better, epoll(), use those.

-lee

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

Reply via email to