delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/1999/02/25/21:49:08

Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm
Sender: cygwin-owner AT sourceware DOT cygnus DOT com
Delivered-To: mailing list cygwin AT sourceware DOT cygnus DOT com
Message-Id: <3.0.5.32.19990225215015.00857270@pop.ne.mediaone.net>
X-Sender: phumblet AT pop DOT ne DOT mediaone DOT net
X-Mailer: QUALCOMM Windows Eudora Pro Version 3.0.5 (32)
Date: Thu, 25 Feb 1999 21:50:15 -0500
To: "E. Robert Tisdale" <edwin AT netwood DOT net>, cygwin AT sourceware DOT cygnus DOT com
From: "Pierre A. Humblet" <Pierre DOT Humblet AT eurecom DOT fr>
Subject: Re: setmode (long)
In-Reply-To: <36D5ADF0.C5FC769@netwood.net>
References: <3 DOT 0 DOT 5 DOT 32 DOT 19990225144311 DOT 0084fc50 AT pop DOT ne DOT mediaone DOT net>
Mime-Version: 1.0

At 12:09 PM 2/25/99 -0800, E. Robert Tisdale wrote:
Robert,

As I said, at least on my machine, od -c shows all lines of test.out ending with \r \n. Now when I modify your program end remove the third setmode, which switches back to TEXT, then all lines appear in binary mode!
Here is a possible explanation: your program is not flushing the buffer and the "effective" mode is the last one, at the time data is moved to disk.
stdout is flushed more often, that's why it works.

Pierre

>Pierre A. Humblet wrote:
>
>> I had a second look (b20.1 on win95) at your problem
>> and it's not what I thought initially,
>> i.e. a basic problem with the cygwin layer in b20.1,
>> which tends to open too many files as binary.
>>
>> In your output, each time you look at test.out
>> the FIRST return of setmode is the same as the argument of setmode,
>> i.e. O_TEXT. Thus in all your runs the file was initially TEXT,
>> although the output appears to be binary.
>> At any rate setmode had no effect.
>>
>> Next I duplicated your experiments (standard g++ in b20.1 only).
>> I don't trust editors to look at CR in files and used "od -c test.out".
>> That shows an extra  ^M on all lines compared to your output.
>> On a binary mounted system test.out is initially binary (as it should),
>> but the output is the same.  Also setmode works for stdout.
>>
>> Next I wrote a similar test in C. There setmode works as expected.
>>
>> I am wondering what you see if you look at your files with od -c,
>> and if you agree that setmode works in a C program
>> (that would point to a C++ error (?))
>
>I verified the results of `vi' (`vim' not `elvis')
>with the results of `od' before I sent the original message.
>I included the results from `vi' in my original message
>because they are easier to read.
>I thought it would be obvious from the `test.dos' and `test.cyg' output
>that `vi' accurately represented the actual contents of the file.
>
>Do `vi' and `od' give you different results on your system?
>
>E. Robert Tisdale <edwin AT netwood DOT net>
>


--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019