recvmsg man page on SmartOS

Man page or keyword search:  
man Server   16655 pages
apropos Keyword Search (all sections)
Output format
SmartOS logo
[printable version]

RECVMSG(3XNET)							RECVMSG(3XNET)

NAME
       recvmsg - receive a message from a socket

SYNOPSIS
       cc [ flag ... ] file ... -lxnet [ library ... ]
       #include <sys/socket.h>

       ssize_t recvmsg(int socket, struct msghdr *message, int flags);

DESCRIPTION
       The  recvmsg()  function	 receives  a message from a connection-mode or
       connectionless-mode socket. It is normally  used	 with  connectionless-
       mode  sockets because it permits the application to retrieve the source
       address of received data.

       The recvmsg() function receives messages from unconnected or  connected
       sockets and returns the length of the message.

       The  recvmsg()  function	 returns  the total length of the message. For
       message-based sockets such as SOCK_DGRAM and SOCK_SEQPACKET, the entire
       message must be read in a single operation. If a message is too long to
       fit in the supplied buffers, and MSG_PEEK is not set in the flags argu‐
       ment,  the  excess  bytes  are  discarded,  and MSG_TRUNC is set in the
       msg_flags member of the msghdr structure. For stream-based sockets such
       as  SOCK_STREAM,	 message boundaries are ignored. In this case, data is
       returned to the user as soon as it becomes available, and  no  data  is
       discarded.

       If  the	MSG_WAITALL  flag is not set, data will be returned only up to
       the end of the first message.

       If no messages are available at the socket, and O_NONBLOCK is  not  set
       on  the	socket's  file	descriptor,  recvmsg()	blocks until a message
       arrives.	 If no messages are available at the socket and O_NONBLOCK  is
       set  on	the socket's file descriptor, the recvmsg() function fails and
       sets errno to EAGAIN or EWOULDBLOCK.

       In the msghdr structure, defined in socket.h(3HEAD), the	 msg_name  and
       msg_namelen  members specify the source address if the socket is uncon‐
       nected. If the socket is connected, the msg_name and  msg_namelen  mem‐
       bers are ignored. The msg_name member may be a null pointer if no names
       are desired or required.

       The msg_control and msg_controllen members specify a buffer to  receive
       ancillary  data sent along with a message. Ancillary data consists of a
       sequence of pairs. Each pair is composed of a  cmsghdr  structure  fol‐
       lowed   by   a	data   array.	The   cmsghdr  structure,  defined  in
       socket.h(3HEAD),	 contains  descriptive	information  which  allows  an
       application to correctly parse data. The data array contains the ancil‐
       lary data message.

       If ancillary data is not transferred, msg_control is set	 to  NULL  and
       msg_controllen is set to 0.

       The  msg_iov  and msg_iovlen fields of the msghdr structure are used to
       specify where the received data will be stored. msg_iov	points	to  an
       array  of iovec structures. The msg_iovlen must be set to the dimension
       of this array. In each iovec structure, the iov_base field specifies  a
       storage	area and the iov_len field gives its size in bytes. Each stor‐
       age area indicated by msg_iov is filled	with  received	data  in  turn
       until  all of the received data is stored or all of the areas have been
       filled.

       If the SO_TIMESTAMP option has been enabled through setsockopt(),  then
       a  struct  timeval  is returned following the cmsghdr, and the cmsg_len
       field of the cmsghdr indicates the size of the struct timeval.

       On successful completion, the msg_flags member of the message header is
       the  bitwise-inclusive  OR  of all of the following flags that indicate
       conditions detected for the received message:

       MSG_EOR
		     End of record was received (if supported  by  the	proto‐
		     col).

       MSG_OOB
		     Out-of-band data was received.

       MSG_TRUNC
		     Normal data was truncated.

       MSG_CTRUNC
		     Control data was truncated.

PARAMETERS
       The function takes the following arguments:

       socket
		  Specifies the socket file descriptor.

       message
		  Points  to a msghdr structure, containing both the buffer to
		  store the source address and the buffers  for	 the  incoming
		  message.  The length and format of the address depend on the
		  address family  of  the  socket.  The	 msg_flags  member  is
		  ignored  on input, but may contain meaningful values on out‐
		  put.

       flags
		  Specifies the type of	 message  reception.  Values  of  this
		  argument  are formed by logically OR'ing zero or more of the
		  following values:

		  MSG_OOB
				 Requests out-of-band data.  The  significance
				 and  semantics of out-of-band data are proto‐
				 col-specific.

		  MSG_PEEK
				 Peeks at the incoming message.

		  MSG_WAITALL
				 Requests that the function  block  until  the
				 full	amount	 of   data  requested  can  be
				 returned. The function may return  a  smaller
				 amount	 of data if a signal is caught, if the
				 connection is	terminated,  if	 MSG_PEEK  was
				 specified,  or if an error is pending for the
				 socket.

USAGE
       The select(3C) and poll(2) functions can be used to determine when data
       is available to be received.

RETURN VALUES
       Upon successful completion, recvmsg() returns the length of the message
       in bytes. If no messages are available to be received and the peer  has
       performed  an  orderly  shutdown, recvmsg() returns 0. Otherwise, −1 is
       returned and errno is set to indicate the error.

ERRORS
       The recvmsg() function will fail if:

       EAGAIN
       EWOULDBLOCK
		      The socket's file descriptor is marked O_NONBLOCK and no
		      data is waiting to be received; or MSG_OOB is set and no
		      out-of-band data is available and	 either	 the  socket's
		      file  descriptor is marked O_NONBLOCK or the socket does
		      not support blocking to await out-of-band data.

       EBADF
		      The socket argument is not a valid open file descriptor.

       ECONNRESET
		      A connection was forcibly closed by a peer.

       EFAULT
		      The message parameter, or	 storage  pointed  to  by  the
		      msg_name,	 msg_control  or msg_iov fields of the message
		      parameter, or storage pointed to by the iovec structures
		      pointed  to  by the msg_iov field can not be accessed or
		      written.

       EINTR
		      This function was interrupted by	a  signal  before  any
		      data was available.

       EINVAL
		      The  sum	of the iov_len values overflows an ssize_t. or
		      the MSG_OOB flag is  set	and  no	 out-of-band  data  is
		      available.

       EMSGSIZE
		      The msg_iovlen member of the msghdr structure pointed to
		      by message is less than or equal to  0,  or  is  greater
		      than IOV_MAX.

       ENOTCONN
		      A	 receive is attempted on a connection-mode socket that
		      is not connected.

       ENOTSOCK
		      The socket argument does not refer to a socket.

       EOPNOTSUPP
		      The specified flags are not supported  for  this	socket
		      type.

       ETIMEDOUT
		      The  connection  timed  out during connection establish‐
		      ment, or due to a transmission timeout on active connec‐
		      tion.

       The recvmsg() function may fail if:

       EIO
		  An  IO  error	 occurred while reading from or writing to the
		  file system.

       ENOBUFS
		  Insufficient resources were available in the system to  per‐
		  form the operation.

       ENOMEM
		  Insufficient memory was available to fulfill the request.

       ENOSR
		  There	 were insufficient STREAMS resources available for the
		  operation to complete.

ATTRIBUTES
       See attributes(5) for descriptions of the following attributes:

       ┌────────────────────┬─────────────────┐
       │  ATTRIBUTE TYPE    │ ATTRIBUTE VALUE │
       ├────────────────────┼─────────────────┤
       │Interface Stability │ Standard	      │
       ├────────────────────┼─────────────────┤
       │MT-Level	    │ MT-Safe	      │
       └────────────────────┴─────────────────┘

SEE ALSO
       poll(2),	  recv(3XNET),	 recvfrom(3XNET),   select(3C),	  send(3XNET),
       sendmsg(3XNET),	 sendto(3XNET),	  setsockopt(3XNET),  shutdown(3XNET),
       socket(3XNET), socket.h(3HEAD), attributes(5), standards(5)

				 Feb 27, 2006			RECVMSG(3XNET)
[top]

List of man pages available for SmartOS

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net