> > > > 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
For what it's worth, this 'program' works as expected in SUA. The size of the fd_set changes depending on the value of FD_SETSIZE. Steve Bardwell