Index | Thread | Search

From:
Otto Moerbeek <otto@drijf.net>
Subject:
send(2): describe sendmmsg(2) in more detail and correct arg list
To:
tech@openbsd.org
Date:
Wed, 30 Sep 2026 11:00:02 +0200

Download raw body.

Thread
OK?

 -Otto

Index: sys/send.2
===================================================================
RCS file: /home/cvs/src/lib/libc/sys/send.2,v
diff -u -p -r1.35 send.2
--- sys/send.2	9 Sep 2022 13:52:59 -0000	1.35
+++ sys/send.2	7 Mar 2024 13:34:07 -0000
@@ -48,14 +48,15 @@
 .Ft ssize_t
 .Fn sendmsg "int s" "const struct msghdr *msg" "int flags"
 .Ft int
-.Fn sendmmsg "int s" "const struct mmsghdr *mmsg" "unsigned int vlen" "int flags"
+.Fn sendmmsg "int s" "struct mmsghdr *mmsg" "unsigned int vlen" "int flags"
 .Sh DESCRIPTION
 .Fn send ,
 .Fn sendto ,
-.Fn sendmsg ,
 and
+.Fn sendmsg
+are used to transmit one message to another socket.
 .Fn sendmmsg
-are used to transmit a message to another socket.
+is used to send one or more messages to another socket.
 .Fn send
 may be used only when the socket is in a
 .Em connected
@@ -78,6 +79,18 @@ underlying protocol, the error
 .Er EMSGSIZE
 is returned, and
 the message is not transmitted.
+.Pp
+The
+.Fn sendmmsg
+function sends multiple messages at a call.
+They are given by the
+.Fa msgvec
+vector along with
+.Fa vlen
+specifying the vector size.
+The number of octets sent per each message is placed in the
+.Fa msg_len
+field of each processed element of the vector after transmission.
 .Pp
 No indication of failure to deliver is implicit in a
 .Fn send .