Rtems telnetd/shell question (and Why does fgetc() return 0 for a 0-length socket read?)
chrisj at rtems.org
Fri Oct 30 03:16:19 UTC 2009
Peter Dufault wrote:
> On Oct 28, 2009, at 6:11 , Chris Johns wrote:
>> I suspect we need to handle a read of the fd better. Closing a remote
>> end of a socket always returns a length of 0. I do not know how this
>> is handled with fget.
> I'm just sitting down to look a this, and the first thing I'm asking is
> how can fgetc() return 0 when the socket it is buffering returns a 0
> length read? Since 0 is a valid return for fgetc() this doesn't make
> any sense. I don't have too much time to write test programs right now
> so I'm throwing out this question: can fgetc() return 0 for a zero
> length read on an underlying socket, or is there a new lower-level bug
> that is screwing things up?
> The fgetc() man page isn't clear and I didn't come up with an internet
> search to get the answer.
We could always remove the fgetc call and use read but the user command
handlers could have the same problem if they read from stdin.
I am wondering if this is a bug in newlib and should be fixed.
More information about the users