This is the mail archive of the
mailing list for the Cygwin project.
Re: Reading a write-only file doesn't set error condition (was Re: Cygwin fread on Write-Only File Descriptor returns undefined state)
- From: Linda Walsh <cygwin at tlinx dot org>
- To: newlib at sourceware dot org, cygwin at cygwin dot com
- Date: Wed, 14 Jun 2006 09:19:23 -0700
- Subject: Re: Reading a write-only file doesn't set error condition (was Re: Cygwin fread on Write-Only File Descriptor returns undefined state)
- References: <448F9EA1.email@example.com> <20060614082441.GA6326@calimero.vinschen.de>
Corinna Vinschen wrote:
In addition to fread not setting the error value, a value
of zero is returned. Zero is to be returned, *only* on
end-of-file or error. However, in the test case, neither
That's not correct. Any value less than size*nitems indicates either
EOF or an error. The programmer is responsible to test with feof() or
ferror() to distinguish between these two cases. See
Er, are you referring to the case of zero possibly being
a valid return value if the program requests zero bytes be read?
I didn't say "only 0"... I new about the other values<count,
but was focusing on the conditions that would exist only when
a 0 was returned for the return value.
I debugged your testcase and the problem appears to be in __srefill(),....Cool!
defined in newlib/libc/stdio/refill.c:
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html