For simple single-part messages, the OS provides functions that take a pointer directly to a buffer without the need for an IOV (input/output vector). In this case, the number of parts is replaced by the size of the message directly pointed to.
In the case of the message send primitive—which takes a send and a reply buffer—this introduces four variations:
Function | Send message | Reply message |
---|---|---|
MsgSend() | Simple | Simple |
MsgSendsv() | Simple | IOV |
MsgSendvs() | IOV | Simple |
MsgSendv() | IOV | IOV |
The other messaging primitives that take a direct message simply drop the trailing v in their names: