This is the mail archive of the cygwin 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: Perl binmode problems when redirecting to text mounts


Igor Pechtchanski wrote:

On Sun, 21 Aug 2005, Igor Pechtchanski wrote:


I'm trying to make sure our perl program works with text mounts.  In the
course of the testing, one weird problem cropped up: binmode seems to
have no effect on STDOUT when redirecting to a file on a text mount.

The following consistently reproduces the problem for me:

$ mount -m | grep text
mount -f -u -t "c:/cygwin/tmp/text" "/tmp/text"
$ cd /tmp/text
$ /usr/bin/perl -e 'binmode(STDOUT);print "\n"' > PT
$ od -c PT
0000000  \r  \n
0000002
$

I've tried various combinations of ":raw", ":perlio", etc, both directly
and through the PERLIO variable, with no success.  The strace output
(available upon request) seems to show that the handle is successfully
set to binary mode, but that the write still happens in text mode.

Can anyone else reproduce this?  Is there a way I can force binary mode
on STDOUT in Perl?


On second thought, this probably has to do with *how* Perl sets binmode on
STDOUT.  The shells (I tried ash, bash, tcsh) don't seem to honor it.

BTW, the code I used is the same as that in /usr/bin/GET.pl and
/usr/bin/piconv (both break in the same way on redirection to files on
text mounts).

I know the shells can honor the O_BINARY specifier on STDOUT, since "cat"
uses this (via setmode(1, O_BINARY)).  There must be something that Perl
is doing differently.  Any ideas?


I believe that this was discussed before, evtually a bug report was already filed. I think the problem is the redirection, here is the
shell involved. Please search the archives (and send me a link when
you have found it).



Gerrit


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