VMIN/VTIME and read expectations

Eric Norum eric@norum.ca
Thu Dec 17 23:28:00 GMT 2009


When you're using VMIN=0, VTIME=255 you have ICANON=0 so 'end-of-file' doesn't really exist.   
On Dec 17, 2009, at 2:16 PM, Joel Sherrill wrote:

> Hi,
> 
> I have been looking into a program on RTEMS that
> uses VMIN=0, VTIME=255. The program calls
> fgetc() which calls read().
> 
> fp->_flags == 0x2806 before the fgetc() call.
> read() times out and returns 0.
> fgetc() returns -1 and fp->_flags == 0x2826
> 
> 
> The 0x0020 being set is _SEOF.
> 
> My questions are:
> 
> + Is this correct behaviour?
> 
> + How does the application programmer distinguish
> between a real EOF and an unsatisfied read?  Even the
> Fedora read(2) man page says:
> 
>       On success, the number of bytes read is returned (zero indicates end of
>       file), and the file position is advanced by this number.
> 
> So even if I dropped down to read(2), I still don't know
> how to distinguish EOF from a read timeout.
> 
> Thanks.
> 
> -- 
> Joel Sherrill, Ph.D.             Director of Research&  Development
> joel.sherrill@OARcorp.com        On-Line Applications Research
> Ask me about RTEMS: a free RTOS  Huntsville AL 35805
>   Support Available             (256) 722-9985
> 
> 

-- 
Eric Norum
eric@norum.ca






More information about the Newlib mailing list