[
Lists Home |
Date Index |
Thread Index
]
From: "Richard Tobin" <richard@cogsci.ed.ac.uk>
> >>> So if you can send ^D down your UNIX pipes, it is because the
> >>> specific programs in the
> >>> pipeline happen to be reading the input stream in binary mode not =
> >>> text mode.
>
> But this is not true. It would only not work if some specific program
> had its own "text mode" in which it did this. I have never seen such
> a program.
>
> Do you have a real example of one?
From shell implementation CYG-WIN (which is admittedly not UNIX)
http://www.cygwin.com/faq/faq.txt
"There's a new registry variable "fmode=binary" which controls
whether the tools always open files in binary mode (unless overridden
with O_TEXT), or always open files in text mode (unless overridden with
O_BINARY)."
For more on this, see
http://sources.redhat.com/cygwin/cygwin-ug-net/using-textbinary.html
See also the discussion of booking binary files out of CVS at
http://www.cygwin.com/ml/cygwin-apps/2001-04/threads.html#00081
at "ash stdin mode is set to O_TEXT, "
On PCs, the DOS command "type" stops on ^Z when writing to the console.
If you use "type x.txt | more" it does not truncate. (Its help specifically says
it is for "text".)
The DOS command "copy" stops on ^Z if you use /A option.
But I have been confused with talking of pipes and stdio when the APIs I
mentioned all deal with file IO. The mechanics I gave were wrong, however
the problem is still real.
Cheers
Rick Jelliffe
|