Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com X-Authentication-Warning: slinky.cs.nyu.edu: pechtcha owned process doing -bs Date: Thu, 3 Apr 2003 21:47:06 -0500 (EST) From: Igor Pechtchanski Reply-To: cygwin AT cygwin DOT com To: Steven Kilby cc: cygwin AT cygwin DOT com Subject: RE: Pipe behavior In-Reply-To: Message-ID: Importance: Normal MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Steven, Perhaps because your program isn't the only one buffering its stdout... Has it occurred to you that "cat" might too? Igor On Thu, 3 Apr 2003, 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 AT cris DOT com] > Sent: Thursday, April 03, 2003 4:41 PM > To: cygwin AT cygwin DOT 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 -- http://cs.nyu.edu/~pechtcha/ |\ _,,,---,,_ pechtcha AT cs DOT nyu DOT edu ZZZzz /,`.-'`' -. ;-;;,_ igor AT watson DOT ibm DOT com |,4- ) )-,_. ,\ ( `'-' Igor Pechtchanski '---''(_/--' `-'\_) fL a.k.a JaguaR-R-R-r-r-r-.-.-. Meow! Knowledge is an unending adventure at the edge of uncertainty. -- Leto II -- 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/