recv - Receives messages from connected sockets
ssize_t recv (
int flags );
[Tru64 UNIX] The following definition of the recv() function does not con-
form to current standards and is supported only for backward compatibility
int recv (
int flags );
Interfaces documented on this reference page conform to industry standards
Refer to the standards(5) reference page for more information about indus-
try standards and associated tags.
socket Specifies the socket descriptor.
buffer Points to a buffer where the message should be placed.
length Specifies the size of the buffer pointed to by the buffer parame-
flags Points to a value controlling the message reception. The flags
parameter is formed by logically ORing one or more of the follow-
ing values, defined in the sys/socket.h file:
MSG_PEEK Peek at incoming message. The data is treated as
unread and the next recv() function (or similar func-
tion) will still return this data.
MSG_OOB Process out-of-band data.
Requests that the function block wait until the full
amount of data requested can be returned. The function
may return a smaller amount of data if a signal is
caught, the connection is terminated, or an error is
pending for the socket.
The recv() function receives messages from a connected socket. The
recvfrom() and recvmsg() functions receive messages from both connected and
unconnected sockets; however, they are usually used for unconnected sockets
The recv() function returns the length of the message. If a message is too
long to fit in the supplied buffer, excess bytes may be truncated depending
on the type of socket that issued the message.
If no messages are available at the socket, the recv() function waits for a
message to arrive, unless the socket is nonblocking. If a socket is non-
blocking, errno is set to [EWOULDBLOCK].
Use the select() function to determine when more data arrives.
[Tru64 UNIX] The recv() function is identical to the recvfrom() function
with a zero-valued address_len parameter, and to the read() function if no
flags are used. For that reason the recv() function is disabled when
4.4BSD behavior is enabled; that is, when the _SOCKADDR_LEN compile-time
option is defined.
Upon successful completion, the recv() function returns the length of the
message in bytes. If no messages are available and the peer has closed the
connection, the recv() function returns a value of 0. Otherwise, the func-
tion returns a value of -1 and sets errno to indicate the error.
If the recv() function fails, errno may be set to one of the following
[EBADF] The socket parameter is not valid.
A connection was forcibly closed by a peer.
[EFAULT] The data was directed to be received into a nonexistent or pro-
tected part of the process address space. The buffer parameter
[EINTR] A signal interrupted the recv() function before any data was
[EINVAL] The MSG_OOB flag is set and no out-of-band data is available.
[EIO] An I/O error occurred while reading from or writing to the file
[ENOBUFS] Insufficient resources were available in the system to complete
[ENOMEM] The system did not have sufficient memory to fulfill the request.
[ENOSR] The available STREAMS resources were insufficient for the
operation to complete.
Receive is attempted on a connection-oriented socket that is not
The socket parameter refers to a file, not a socket.
The specified flags are not supported for this socket type or
The connection timed out during connection establishment or due
to a transmission timeout on active connection.
The socket is marked nonblocking, and no data is waiting to be
Functions: recvfrom(2), recvmsg(2), send(2), sendmsg(2), sendto(2),
select(2), shutdown(2), socket(2), read(2), write(2)