This is the mail archive of the
newlib@sourceware.org
mailing list for the newlib project.
Re: VMIN/VTIME and read expectations
- From: Eric Norum <eric at norum dot ca>
- To: Joel Sherrill <joel dot sherrill at oarcorp dot com>
- Cc: "newlib at sources dot redhat dot com" <newlib at sources dot redhat dot com>
- Date: Thu, 17 Dec 2009 14:30:39 -0800
- Subject: Re: VMIN/VTIME and read expectations
- References: <4B2AADAE.60400@oarcorp.com>
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