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] .