Gerrit Pape <[EMAIL PROTECTED]> wrote:
> On Sat, Jan 07, 2006 at 03:33:43PM -0800, Eric Wong wrote:
> > fflush(NULL) seems to flush the stdin stream, as well as any open
> > streams it can find, regardless of whether or not it's a writeable
> > stream.   According to the fflush manpage, this is wrong:
> > 
> >     If  the  stream  argument  is  NULL,  fflush()  flushes all open
> >     output streams.
> > 
> > You can see this behavior with the test program I've included below, and
> > then test it again by commenting out the fflush(NULL) call in it to see
> > the difference.
> 
> Hi Eric, while I can see from the dietlibc sources that indeed the input
> streams including stdin are fflushed, I currently cannot see the impact.
> 
> Can you please show me how to use your test program to see a difference?

Just use it to read a text file from stdin.  You'll note that there are
missing lines when compiled with dietlibc
 
> > #include <stdio.h>
> > #include <string.h>
> > 
> > int main (void)
> > {
> >     char buf[4096];
> >     while (fgets(buf,4096,stdin)) {
> >             /* this can also be fwrite/fprintf: */
> >             write(1,buf,strlen(buf));
> >             
> >             /* you can comment this out to compare */
> >             fflush(NULL);
> >     }
> > 
> >     return 0;
> > }
> > 
> > /* EOF */
> 

-- 
Eric Wong

Attachment: signature.asc
Description: Digital signature

Reply via email to