recvmsg(2) SDK R4.11 recvmsg(2)
NAME
recvmsg - receive a message from a socket
SYNOPSIS
#include <sys/socket.h>
int recvmsg (s, msg, userflags)
int s;
struct msghdr * msg;
int userflags;
where:
s File descriptor of socket to receive from
msg Pointer to receive msg packet
userflags Flags for transfer
DESCRIPTION
The recvmsg call is identical to recv or recvfrom depending on
whether or not the msgnamelen fields are greater than zero. If the
msgnamelen field of the msghdr structure is non-zero, this call is
identical to recvfrom, otherwise it is identical to recv.
The added value of this call is that it allows an IOV to be supplied
in the msg packet for use of non-contiguous buffers (see readv for
more information about IOV structures).
ACCESS CONTROL
None.
RETURN VALUE
These calls return the number of bytes received.
0..len Number of bytes transferred.
-1 An error occurred. errno is set to indicate the error.
DIAGNOSTICS
Errno may be set to one of the following error codes:
EBADF The argument s is not an active valid descriptor.
ENOTSOCK The argument s is not a socket.
EAGAIN The socket is marked non-blocking and the receive operation
would block.
EINTR The receive was interrupted by delivery of a signal before
any data was available for the receive.
EFAULT The data was specified to be received into a non-existent
or protected part of the process address space.
EMSGSIZE Too many entries in the iovec array.
SEE ALSO
read(2), readv(2), recvfrom(2), send(2), socket(2).
Licensed material--property of copyright holder(s)