This is the mail archive of the
mailing list for the Cygwin project.
Re: Limit to size of pipe
David Rothenberger wrote:
chris writes:<snip program>
> Further to an earlier message I sent, I now attach an example. This
> tries to send a message of a fixed sized down a pipe. Under windows I
> can't seem to send much more than 25k down in one go, although I can
> send more if I chop it up into sections. Under linux however I can send
> as large amounts as I like. While it is possible to work around it, I
> thought I would mention it in case it was easy to fix, just no-one had
> requested it :)
> Example program follows: setting MSGSIZE>25000ish on my computer causes
> fail (ie pipeval=-1)
> #include <unistd.h>
> #include <stdio.h>
> #define MSGSIZE 23000
> char *msg1 = "message";
I modified the program to allocate the message buffer to send on the
heap and to initialize the entire thing. The test seems to work for
any size at that point.
Thanks! I notice (by some fiddling) that it seems I have to instansiate
(at least most of) the buffer before I send it. Is there some rule that
you should instansiate memory before reading it? of course doing so is
sensible, but I didn't know nessasary? Out of interest (because I
couldn't actually find a 'mission plan'), what is the "plan" of Cygwin?
to create a system wherebye any linux / unix program will compile
without changes under windows? Or to simply make it much easier to
convert but not try to support "stupid" activities?
Having said that, I've been convinced I should change the program I'm
converting from *BSD to not send stupidly large mostly-empty buffers
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html