Reading a write-only file doesn't set error condition (was Re: Cygwin fread on Write-Only File Descriptor returns undefined state)

Linda Walsh cygwin@tlinx.org
Wed Jun 14 16:49:00 GMT 2006


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/



More information about the Cygwin mailing list