On 12 August 2005 15:11, Sigbjorn Finne wrote:

> "Simon Marlow" <[EMAIL PROTECTED]> writes:
>> 
> ...
>> No - read() can always return less than the requested amount of data,
>> even when not in O_NONBLOCK mode.
>> 
> 
> Hmm, care to give some details as to why you equate "can" with
> "always will" on all platforms?

Well, you're right, I'm not sure "always will" is explicitly required,
but I believe it's universally true.  The fact that the POSIX spec for
read() only mentions how O_NONBLOCK affects read() when there is no data
available, and doesn't say anything about the effect of O_NONBLOCK when
there is data available, would seem to indicate that O_NONBLOCK doesn't
make any difference in this case.

Here's what POSIX says about short reads, FWIW:

"The value returned may be less than nbyte if the number of bytes left
in the file is less than nbyte, if the read() request was interrupted by
a signal, or if the file is a pipe or FIFO or special file and has fewer
than nbyte bytes immediately available for reading. For example, a
read() from a file associated with a terminal may return one typed line
of data."

http://www.opengroup.org/onlinepubs/009695399/functions/read.html

Cheers,
        Simon
_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to