This is the mail archive of the
cygwin
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.7050908@tlinx.org> <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(),
defined in newlib/libc/stdio/refill.c:
....Cool!
Linda
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/