Mailing-List: contact cygwin-help@cygwin.com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner@cygwin.com Mail-Followup-To: cygwin@cygwin.com Delivered-To: mailing list cygwin@cygwin.com X-Injected-Via-Gmane: http://gmane.org/ To: cygwin@cygwin.com From: "Alex Vinokur" Subject: Re: Redirect both stdout & stderr to the same file Date: Sun, 15 Jun 2003 07:34:24 +0300 Lines: 126 Message-ID: References: X-Complaints-To: usenet@main.gmane.org X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 5.50.4522.1200 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4522.1200 "Igor Pechtchanski" wrote in message 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 > > 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 #include 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/