This is the mail archive of the cygwin mailing list for the Cygwin project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
On Jun 23 14:01, Corinna Vinschen wrote: > On Jun 23 13:55, Corinna Vinschen wrote: > > On Jun 23 13:52, Corinna Vinschen wrote: > > > 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. > > > > Now that's embarassing. I guess I shgould go to primary school again. > > > > Hang on, I 'll have a nother look while I'nm trying to get the red out of > > my face... > > Oh yeah, the inclusion of stdio.h also includes sys/select.h so the > first (default) definition of FD_SETSIZE to 64 rules. In theory it > shouldn't do that so we might have to change it in the newlib headers, Oh no, we don't have to. sys/select.h is included via sys/types.h *iff* __BSD_VISIBLE is set. __BSD_VISIBLE is set by default unless you set some feature macro like _POSIX_C_SOURCE. Have a look into <sys/features.h> for a description. Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Maintainer cygwin AT cygwin DOT com Red Hat
Attachment:
signature.asc
Description: PGP signature
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |