readv(), writev()
    Mike Muuss 
    mike at BRL.ARPA
       
    Tue Sep 30 14:57:25 AEST 1986
    
    
  
Exactly right.  readv() and writev() allow one to, say, transmit
a packet (header+data) from two separate buffers as one unit,
without needing either (a) extra system calls, or (b) a bcopy().
Small efficiency nit, you say.  True, EXCEPT for the fact that
the 4.2 TCP sets the TCP_PUSH bit at the end of each sys-write.
This can have extreme effects on network performance.
Note that readv() and writev() have a maximum vector length
of 16 items in 4.2 BSD.  You will find this limit strictly enforced
by the kernel, and perplexing to the unwary.
	-Mike
    
    
More information about the Comp.unix.wizards
mailing list