Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!caip!brl-adm!brl-smoke!smoke!mike@BRL.ARPA From: mike@BRL.ARPA (Mike Muuss) Newsgroups: net.unix-wizards Subject: Re: readv(), writev() Message-ID: <4251@brl-smoke.ARPA> Date: Tue, 30-Sep-86 00:57:25 EDT Article-I.D.: brl-smok.4251 Posted: Tue Sep 30 00:57:25 1986 Date-Received: Sat, 4-Oct-86 10:33:36 EDT Sender: news@brl-smoke.ARPA Lines: 12 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