On Thu, 4 Nov 2004, Christopher Faylor wrote: > On Wed, Nov 03, 2004 at 09:21:50PM -0800, Earl Chew wrote: > >Igor Pechtchanski wrote: > >>On Wed, 3 Nov 2004, Earl Chew wrote: > >> > >>>This code used to work on Perl 5.6.1-2 on Cygwin 1.3.10. > >>> > >>>I've now moved to Perl 5.8.5-3 on Cygwin 1.5.11. > >>> > >>>Here is the Perl program: > >>> > >>> binmode STDOUT; > >>> print "Hello\n"; > >>> > >>>1. Output to file on text mount > >>> > >>> perl foo.pl > foo.txt ; od -c foo.txt > >>> > >>> 0000000 H e l l o \r \n # Perl 5.8.5-3 Cygwin 1.5.11 > >>> 0000000 H e l l o \n # Perl 5.6.1-2 Cygwin 1.3.10 > >[ .. snip .. ] > >>This is expected behavior. Unless you use raw writes (as "cat" does), the > >>mode of the file (text or binary) is determined *by the program that opens > >>the file*. In the above case, the program is not perl, it's your shell. > > > >I think you're telling me that "binmode STDOUT" has no effect. I find > >this counterintuitive. > > > >Without "binmode STDOUT", I can see how your explanation would work. > > AFAIK, binmode STDOUT should work fine. It should eventually translate > to the setmode call.
Do you mean the "set_flags" call? > Since setmode takes an fd argument it obviously should affect the mode > of the file being read or written regardless of how it was originally > opened. > > cgf I used the command-line version of the above script: strace -o bmode.strace perl -e 'binmode STDOUT;print "Hello\n"' > foo.txt bmode.strace was only ~350 lines, and it seems to show that the mode of fd 1 is set to text based on the mount info, and never reset to binary afterwards. fhandler_base::write reports a text write. So it does look like "binmode STDOUT" doesn't work... What am I missing? Igor -- 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! "The Sun will pass between the Earth and the Moon tonight for a total Lunar eclipse..." -- WCBS Radio Newsbrief, Oct 27 2004, 12:01 pm EDT -- 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/