STDIO - proposed fix for fread()
Jonathan Larmour
jifl@eCosCentric.com
Thu Mar 6 20:19:00 GMT 2003
Gary Thomas wrote:
> On Thu, 2003-03-06 at 12:41, Jonathan Larmour wrote:
>
>>Gary Thomas wrote:
>>
>>>The 'fread()' function works differently on eCos than it does on Linux.
>>>Thusly, some programs which work fine on Linux fail on eCos. The
>>>problem is that fread() sets ferror() when it gets to the end of the
>>>file (as well as setting feof()). This patch fixes it, and also adds a
>>>test for the condition.
>>>
>>>Does it make sense? Shall I commit?
>>
>>Well those programs are using unspecified behaviour so strictly they are
>>non-portable. Checking for ferror() without a reported error is as porr
>>practice as checking for errno without a reported error.
>>
>>But we may as well probably deal with this although I'm not particularly
>>happy about adding a test for something that only non-portable programs
>>use. But still it's the least worst option :-).
>>
>>If you could add a comment in the test saying as much that would be nice,
>>i.e. standard doesn't require it, but we'll be nice to programs anyway.
>>
>
>
> I'll add a comment, but I'm not convinced how wrong/non-portable this
> usage is. The [Linux] man page for 'fread' explicitly states that it
> does not distinguish between EOF and error conditions and that an
> application must use feof() and ferror() to ferret it out.
Since some systems have an EEOF (not us admittedly) it would make sense
for a portable program to check feof() first before ferror(). The Linux
man pages obviously reflect Linux :-). But yes it will make programs
simpler to change eCos this way regardless.
>>>+#include <cyg/fileio/fileio.h>
>>
>>Probably need not include this.
>
> This brought in the prototype for mount().
Oh, oops. In that case what is unistd.h for? Just checking there isn't a
dependency on something somewhere that isn't explicit.
Jifl
--
eCosCentric http://www.eCosCentric.com/ The eCos and RedBoot experts
--[ "You can complain because roses have thorns, or you ]--
--[ can rejoice because thorns have roses." -Lincoln ]-- Opinions==mine
More information about the Ecos-patches
mailing list