This is the mail archive of the
cygwin@cygwin.com
mailing list for the Cygwin project.
Re: Limit to size of pipe
David Rothenberger wrote:
chris writes:
> Hello!
>
> 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.
<snip program>
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
anyway :)
Chris
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/