Re: writev() BUGS!

Jens-Uwe Mager (jum@ra.han.de)
Wed, 2 Jun 1999 23:30:50 GMT


On Wed, 2 Jun 1999 13:17:37 GMT, David S. Miller <davem@redhat.com> wrote:
> Date: Sat, 22 May 1999 08:17:24 -0400 (EDT)
> From: HighWind Software Information <info@highwind.com>
>
> In any case, ::writev() does sometimes perform a partial write
> on a blocking socket, that is a BUG.
>
>No, it is by no means a bug, it is perfectly fine behavior, and your
>application must check for and deal with this case.
>
>It is not getting fixed, because there is nothing to fix.

Uhm, are you sure? I have never seen that behaviour on any
other Unix. If a socket is in blocking mode, writev (or send)
is supposed to sleep until all is send or an error occurs. I
would believe a lot software would break if write returned partial
results on blocking software. On the reading side the bahaviour is
known and the applications compensate for that. The description at
<http://www.opengroup.org/onlinepubs/007908799/xns/send.html> makes me
believe that write/send shouldn't do partial things on blocking sockets.

-- 
Jens-Uwe Mager	<pgp-mailto:62CFDB25>

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/