svcadm(8)을 검색하려면 섹션에서 8 을 선택하고, 맨 페이지 이름에 svcadm을 입력하고 검색을 누른다.
recvmmsg(3c)
Standard C Library Functions recvmmsg(3C)
NAME
recvmmsg - receive multiple messages from a socket
SYNOPSIS
#include <sys/socket.h>
int recvmmsg(int s, struct mmsghdr *msgvec, unsigned int vlen,
unsigned int flags, struct timespec *timeout);
PARAMETERS
s The socket descriptor. For more information, see the
socket(3C) man page.
msgvec Pointer to an array of mmsghdr structures
vlen The number of elements in the array of mmsghdr structures
flags Flags for receiving as in the recvmsg(3C) function. In addi‐
tion the following flag is defined:
MSG_WAITFORONE Turns on MSG_DONTWAIT after the first mes‐
sage has been received.
timeout Pointer to a struct timespec defining a timeout for the
receive operation. The specified timeout is subjected to
rounding, based on system clock resolution.
DESCRIPTION
The recvmmsg() function is an extension to the recvmsg(3C) function
that allows the caller to receive multiple messages on a socket in a
single invocation.
A blocking recvmmsg() function call blocks until the vlen messages have
been received or until the timeout expires. A non-blocking call
receives as many messages as possible, up to vlen, and returns immedi‐
ately.
The mmsghdr structure is defined as:
struct mmsghdr {
struct msghdr msg_hdr; /* Message header */
ssize_t msg_len; /* Number of bytes received */
};
msg_hdr msghdr structure as described in socket.h(3HEAD)
msg_len Is used to return the number of bytes received in the mes‐
sage described in the msg_hdr. This is equivalent to the
return value from a single recvmsg() function call.
The contents of the msghdr structure differ depending on whether or not
__USE_SUNOS_SOCKETS__ is defined before including the <sys/socket.h>
header. All source files accessing msghdr structures or calling the
recvmmsg() function must be compiled with either __USE_SUNOS_SOCKETS__
defined or all with it undefined — mixing and matching will not work.
See the socket.h(3HEAD) manual page for details.
RETURN VALUES
Upon successful completion, the recvmmsg() function returns the number
of messages received. The number of bytes received is the arithmetic
sum of the msg_len members of each valid mmsghdr structure.
The function returns -1 if an error occurs and errno is set to indicate
the error.
ERRORS
Errors are the same as per the recvmsg() function. In addition, the
following error is also returned:
EINVAL The timeout argument is invalid
For more information, see the recvmsg(3C) man page.
ATTRIBUTES
See attributes(7) for descriptions of the following attributes:
tab() box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) ATTRIBUTE TYPEAT‐
TRIBUTE VALUE _ Interface StabilityCommitted _ MT-LevelAsync-Signal-
Safe
SEE ALSO
fcntl(2), poll(2), sendmmsg(3C), select(3C), socket(3C), recvmsg(3C),
socket.h(3HEAD), attributes(7)
HISTORY
The recvmmsg() function was added to Oracle Solaris in the 11.3 SRU 32
release.
Oracle Solaris 11.4 2 Feb 2021 recvmmsg(3C)