Perl binmode problem on text mount

Christopher Faylor cgf-no-personal-reply-please@cygwin.com
Thu Nov 4 16:30:00 GMT 2004


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

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



More information about the Cygwin mailing list