Article View: comp.sys.amiga.tech
Article #10399Re: fopen() modes in Lattice C
From: Matt Dillon
Date: Mon, 28 Nov 1988 06:44
Date: Mon, 28 Nov 1988 06:44
29 lines
1796 bytes
1796 bytes
:> fopen(temp, "wb");
:
:The `b' stands for binary (versus `t' text) and does no translation on
:your file stream. In text mode, CR-LF sequences are translated to NL
:characters on input. On output, the reverse occurs: NL's are translated
:to CR-LF's.
:
:NOTE: This information was neither in K&R nor my Manx (Compiler :-) ) C.
: I looked it up in Microsoft C and I've used this mode in UNIX before.
On an IBM-PC, yes. The IBM-PC uses the CR-LF combinations instead
of just an LF. Since STDIO defines the 'new line' to be just an LF,
C implementations on the IBM's must filter out the CR's when reading and
add them when writing. Unfortunetly, the idiots (not just Lattice, but
essentially ALL the IBM-PC implementations) made the default 'text'. A
simple fopen("blah", "r") on an IBM *assumes* translation, which is stupid.
The default can usually be changed by modifying a global variable, but it
doesn't make porting much easier.
Even worse, the low-level IO routines as implemented on most
C compilers on IBM's also do translation!
On the Amiga, no. There is no translation done. There had better
NOT be any translation! On the Amiga a 'new line' is a single LF which is
compatible with STDIO (i.e. UNIX, which was what stdio was built on). A
simple fopen("blah", "r") on the Amiga is 'binary', and there is no
difference between binary and text.
-Matt
Technical Details
Message-ID:
<8811280644.AA14253@postgres.Berkeley.EDU>Path:
arc1-ca.pugleaf.net!utzoo!utgpu!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!rutgers!ucsd!ucbvax!POSTGRES.BERKELEY.EDU!dillonShow Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!rutgers!ucsd!ucbvax!POSTGRES.BERKELEY.EDU!dillon From: dillon@POSTGRES.BERKELEY.EDU (Matt Dillon) Newsgroups: comp.sys.amiga.tech Subject: Re: fopen() modes in Lattice C Message-ID: <8811280644.AA14253@postgres.Berkeley.EDU> Date: 28 Nov 88 06:44:14 GMT Sender: daemon@ucbvax.BERKELEY.EDU Lines: 29