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/ |\ _,,,---,,_ [EMAIL PROTECTED] ZZZzz /,`.-'`' -. ;-;;,_ [EMAIL PROTECTED] |,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/