recvmmsg(3c) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨 페이지 이름
검색(S)

recvmmsg(3c)

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  re‐
                  ceive  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  re‐
       ceives  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 re‐
                  turn 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)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3