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

개요

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

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