setmode (long)

Pierre A. Humblet
Thu Feb 25 18:48:00 GMT 1999

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

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

Want to unsubscribe from this list?
Send a message to

More information about the Cygwin mailing list