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:[EMAIL PROTECTED] Sent: Thursday, April 03, 2003 4:41 PM To: [EMAIL PROTECTED] 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/