Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[linux-dvb] Re: EOVERFLOW with section filter



Andreas Oberritter <andreas@oberritter.de> wrote:

> On Tue, 2003-01-14 at 11:00, Clemens Kirchgatterer wrote:
> > > If you always read 4096 bytes then you will always receive whole
> > > sections.
> 
> ... assuming read() does not fail and return -1, of course.
> 
> > 
> > but you may also read less, IMHO. i.e. when EINTR occours.
> > 
> 
> read() will then return -1 and the content of the buffer should be
> discarded, because it is not possible to tell how much data (if any)
> has been copied to it. The next succeeding read will copy a complete
> section to the buffer.

man(2) read:

       On  success, the number of bytes read is returned (zero indicates
end of file), and the file position is advanced by this number. It is
not an error if this number is smaller  than  the  number of bytes
requested; this may happen for example because fewer bytes are actually
available right now [..] or because read() was interrupted by a signal.

[..]

POSIX allows a read that is interrupted after reading some data to
return -1 (with errno set to EINTR) or to return the number of bytes
already read.

(end man)

i don't really know if this is of any relevance for the driver. could
you please comment on that? i think, based on manpage, it IS possible,
that read returns with less then available bytes, caused by a signal,
without returning -1.


-- 
Info:
To unsubscribe send a mail to listar@linuxtv.org with "unsubscribe linux-dvb" as subject.



Home | Main Index | Thread Index