"Igor Pechtchanski" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED]
> On Sat, 14 Jun 2003, Alex Vinokur wrote:
>
> > ===========================================
> > Windows 2000
> > CYGWIN_NT-5.0 1.3.22(0.78/3/2)
> > GNU gcc version 3.2 20020927 (prerelease)
> > ===========================================
> >
> > ------ C code : BEGIN ------
> > /* File t.c */
> > #include <stdio.h>
> > int main()
> > {
> >   fprintf (stdout, "(1) to stdout\n");
> >   fprintf (stderr, "(2) to stderr\n");
> >   fprintf (stdout, "(3) to stdout\n");
> >   return 0;
> > }
> > ------ C code : END --------
> >
> > $ gcc t.c
> >
> > $ a &>zzz
> >
> > $ cat zzz
> >
> > (2) to stderr
> > (1) to stdout
> > (3) to stdout
> >
> > -----------------------
> > Expected :
> > (1) to stdout
> > (2) to stderr
> > (3) to stdout
> > -----------------------
> >
> > What is wrong?
>
> Buffering.  stdout is buffered, stderr isn't.  Try adding "fflush(stdout)"
> after the first fprintf.  This is a basic C stdio question, it'll work the
> same way on Linux, FYI.
[snip]

Thanks.

Something else.
It seems that cerr isn't buffered.

===========================================
Windows 2000
CYGWIN_NT-5.0 1.3.22(0.78/3/2)
GNU gcc/g++ version 3.2 20020927 (prerelease)
===========================================

--------- C++ code : BEGIN ---------
// File t.cpp
#include <stdio.h>
#include <iostream>
using namespace std;

int main()
{
  fprintf (stdout, "(01) to stdout\n");
  fprintf (stderr, "(02) to stderr\n");

  fprintf (stdout, "(03) to stdout\n");
  fprintf (stderr, "(04) to stderr\n");

  cout << "(05) to cout" << endl;
  cerr << "(06) to cerr" << endl;
  clog << "(07) to clog" << endl;

  cout << "(08) to cout" << endl;
  cerr << "(09) to cerr" << endl;
  clog << "(10) to clog" << endl;

  fprintf (stdout, "(11) to stdout\n");
  fprintf (stderr, "(12) to stderr\n");

  cout << "(13) to cout" << endl;
  cerr << "(14) to cerr" << endl;
  clog << "(15) to clog" << endl;

  return 0;
}

--------- C++ code : END -----------


--------- Run Log : BEGIN ---------

$ g++ t.cpp

$ a 2>&1 | more
(02) to stderr
(04) to stderr
(01) to stdout
(03) to stdout
(05) to cout
(06) to cerr
(07) to clog
(08) to cout
(09) to cerr
(10) to clog
(12) to stderr
(11) to stdout
(13) to cout
(14) to cerr
(15) to clog

--------- Run Log : END -----------


   ==========================================
   Alex Vinokur
     mailto:[EMAIL PROTECTED]
     http://www.simtel.net/pub/oth/19088.html
     http://sourceforge.net/users/alexvn
   ==========================================






--
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/

Reply via email to