Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Message-ID: <4309B1E7.8090403@familiehaase.de> Date: Mon, 22 Aug 2005 13:07:19 +0200 From: "Gerrit P. Haase" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.8) Gecko/20050511 MIME-Version: 1.0 To: cygwin AT cygwin DOT com Subject: Re: Perl binmode problems when redirecting to text mounts References: In-Reply-To: Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-IsSubscribed: yes 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/