| delorie.com/archives/browse.cgi | search |
| X-Authentication-Warning: | delorie.com: mail set sender to djgpp-bounces using -f |
| From: | Martin Str|mberg <ams AT dexter DOT ludd DOT ltu DOT se> |
| Newsgroups: | comp.os.msdos.djgpp |
| Subject: | Re: A question about the ferror behavior |
| Date: | Mon, 5 Aug 2013 10:16:30 +0000 (UTC) |
| Organization: | Aioe.org NNTP Server |
| Lines: | 49 |
| Message-ID: | <ktnu1u$ack$1@speranza.aioe.org> |
| References: | <51E200D7 DOT 1050800 AT gmx DOT de> |
| NNTP-Posting-Host: | ftvAZcRvOze4hbePWaim7g.user.speranza.aioe.org |
| X-Complaints-To: | abuse AT aioe DOT org |
| User-Agent: | tin/1.4.7-20030322 ("Suggestions") (UNIX) (SunOS/5.9 (sun4u)) |
| X-Notice: | Filtered by postfilter v. 0.8.2 |
| Bytes: | 1708 |
| To: | djgpp AT delorie DOT com |
| DJ-Gateway: | from newsgroup comp.os.msdos.djgpp |
| Reply-To: | djgpp AT delorie DOT com |
Juan Manuel Guerrero <juan DOT guerrero AT gmx DOT de> wrote:
> Please inspect the code snippet below:
> #include <stdio.h>
> int main(void)
> {
> char buffer[1024];
> FILE *f = fopen("foobar.txt", "w");
Note nNot "r+" nor "w+".
> clearerr(f);
> if (fgets(buffer, sizeof(buffer), f) == NULL)
> printf("EOF encountered before data\n");
> printf("ferror = %s\n", ferror(f) ? "TRUE" : "FALSE");
> printf("feof = %s\n", feof(f) ? "TRUE" : "FALSE");
> return 0;
> }
> If this code is compiled with djdev203 or djdev204 I get
> the following output:
> EOF encountered before data
> ferror = FALSE
> feof = FALSE
> If I compile the code on linux I get the following
> output:
> EOF encountered before data
> ferror = TRUE
> feof = FALSE
It could be argued that there are no EOF indication for files opened
only for writing, hence pointless calling ferror() or feof() on such
FILE * variables...
I don't know what the standard says about that.
--
MartinS
| webmaster | delorie software privacy |
| Copyright © 2019 by DJ Delorie | Updated Jul 2019 |