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


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.
	Igor
P.S.  In your defense, unlike sh, bash supports both the "2>&1" and "&>"
syntaxes.
-- 
				http://cs.nyu.edu/~pechtcha/
      |\      _,,,---,,_		pechtcha@cs.nyu.edu
ZZZzz /,`.-'`'    -.  ;-;;,_		igor@watson.ibm.com
     |,4-  ) )-,_. ,\ (  `'-'		Igor Pechtchanski, Ph.D.
    '---''(_/--'  `-'\_) fL	a.k.a JaguaR-R-R-r-r-r-.-.-.  Meow!

"I have since come to realize that being between your mentor and his route
to the bathroom is a major career booster."  -- Patrick Naughton


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