Mail Archives: cygwin/2003/06/14/19:03:42
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 AT cs DOT nyu DOT edu
ZZZzz /,`.-'`' -. ;-;;,_ igor AT watson DOT ibm DOT 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/
- Raw text -