delorie.com/archives/browse.cgi | search |
Eli Zaretskii writes: > > From: "Stephen J. Turnbull" <turnbull AT sk DOT tsukuba DOT ac DOT jp> > > Date: Sat, 20 Jul 2013 19:54:47 +0900 > > > > Eli Zaretskii writes: > > > > From: "Stephen J. Turnbull" <turnbull AT sk DOT tsukuba DOT ac DOT jp> > > > > Date: Sat, 20 Jul 2013 17:20:25 +0900 > > > > > > > > I would assume that > > > > > > > > ifp = fopen(infile, "r"); ofp = fopen(outfile, "w"); > > > > > > > > produces an unwritable and an unreadable file respectively > > > > > > There's no such thing as "unreadable file" on DOS. > > > > Sorry, I didn't mean "file" (too much Python programming, obviously), > > I meant "FILE*". Can you read from ofp on DOS? > > That last question is no longer in DOS-land, it is in the libc-land. > Because DOS knows nothing of 'FILE *'. *sigh* Try "Can you read from a (FILE*|file descriptor) opened in mode 'w' in a DJGPP program?" instead, which is what I intended. (My original question was "what semantics should this C code have?" and above is my answer, imprecisely stated.) Or you could ask the same question for a set of relevant DOS implementations. > So we are back at square one: is there any good reason, apart of > "other libraries do that", which mandates that a FILE stream open > with "w" be unreadable? If you can write to ifp and read from ofp as above, why is there a mode argument to the open functions at all? In fact the man pages for open(2) on both Linux and BSD specify the that O_RDONLY and O_WRONLY flags mean open in "read-only" and "write-only" modes respectively. I would assume that the designers wanted to avoid situations where FILE* or fd is passed around and somebody gets confused and overwrites a file that was supposed to be readonly. I really think the lack of a specification here is due simply to the fact that nobody considered that anything else would be reasonable, and it's just an embarrassing oversight (for the standards committees).
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |