On Jun 23 11:36, 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 > > 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.
In my case it prints 'sizeof(fd_set)=8', which is correct. For historical reasons and an ill-advised compatibility with old cruft, fd_set is an array of bit per descriptor. 8 * 8 = 256. Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Maintainer cygwin AT cygwin DOT com Red Hat
signature.asc
Description: PGP signature