This is better.. still no version info, but.. what's the opinion on this?

--- 
The reason why i used writev() is because on 4.4BSD (and apparantly on
solaris), there is the guarantee that *each and every item so passed*
will be written in one, atomic segment.  That is to say, if i pass the
return value from ttyname() in one iov and "\n" in another iov, that
the kernel will tack both toggether into the same socket segment and
send it out to the other end, so that a single read() will get both
items.

Apparantly, on linux, only the first segment was being recieved, the
second segment was not.  The sender (who did the writev()) was told
that 11 bytes had been written, and the receiver (who did the read())
was told that 10 bytes were available.

There are two obvious possibilities (i dont know which one applies):

  1) writev() on linux isnt atomic like it is on 4.4BSD, and that my
     dependance on this "feature" was not conforming to linux's
     behavior.

  2) writev() on linux isnt behaving as it "should be" with respect
     to writing all of the iov's in a single atomic write.      
------

Ciao,
-- 
David Welton                          http://www.efn.org/~davidw 

        Debian GNU/Linux - www.debian.org


--
TO UNSUBSCRIBE FROM THIS MAILING LIST: e-mail the word "unsubscribe" to
[EMAIL PROTECTED] . 
Trouble?  e-mail to [EMAIL PROTECTED] .

Reply via email to