This is the mail archive of the cygwin@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Redirect both stdout & stderr to the same file


"Igor Pechtchanski" <pechtcha@cs.nyu.edu> wrote in message Pine.GSO.4.44.0306141900400.25752-100000@slinky.cs.nyu.edu">news:Pine.GSO.4.44.0306141900400.25752-100000@slinky.cs.nyu.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@connect.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/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]