Mail Archives: cygwin/2003/06/15/00:35:44
"Igor Pechtchanski" <pechtcha AT cs DOT nyu DOT edu> wrote in message news:Pine DOT GSO DOT 4 DOT 44 DOT 0306141900400 DOT 25752-100000 AT slinky DOT cs DOT nyu DOT edu...
> 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:alexvn AT connect DOT to
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/
- Raw text -