Pipe behavior

Randall R Schulz rrschulz@cris.com
Fri Apr 4 01:03:00 GMT 2003


Steven,

I assume the test program you're using to explore this behavior is 
pretty concise. Why don't you post it here?

Randall Schulz


At 16:44 2003-04-03, Steven Kilby wrote:
>Randall,
>
>Thanks for the response.  No, I am not sure that Emacs uses pipes
>instead of ptys.  I'll have to look at that.  I was testing with the
>cygwin character emacs.  What you said makes sense but I have one more
>question.  I modified the code by inserting a call to fflush between the
>printf's.  I would have thought this would force the first printf to
>display immediately but this did not happen.  Can you help me understand
>why?
>
>Thanks
>
>Steven
>
>>Original Message-----
>>From: Randall R Schulz [mailto:rrschulz@cris.com]
>>Sent: Thursday, April 03, 2003 4:41 PM
>>To: cygwin@cygwin.com
>>Subject: Re: Pipe behavior
>>
>>
>>Steven,
>>
>>At 16:28 2003-04-03, you wrote:
>> >Hello,
>> >
>> >I have a question about pipe behavior.  I wrote a simple program that
>> >does a printf, sleeps for 5 seconds and then another printf.  If I run
>> >the program with the following way:  $ ./simple | cat  The output is
>> >delayed until the program finished.  I guessed that the pipe is
>> >buffered and doesn't flush until it is closed when the program ends.
>> >But then I ran the same program as an emacs subprocess and attached a
>> >buffer to it. In this scenario the first printf is displayed, 5 seconds
>>
>> >pass and then the second printf is displayed.  Emacs also uses pipes so
>>
>> >I do not understand why the behavior is different.
>>
>>Pipes don't buffer in the manner you describe, but the standard I/O
>>library does when its output is directed to a pipe or a plain file.
>>
>>Are you sure that Emacs uses pipes and not ptys (pseudo-ttys)?
>>
>>Which Emacs are you using? Cygwin or Windows?
>>
>>
>> >Thanks
>> >Steven Kilby
>>
>>
>>Randall "We don't need no stinkin' disclaimers" Schulz


--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/



More information about the Cygwin mailing list