recv function is like
read, but with the additional
flags flags. The possible values of flags are described
in Socket Data Options.
If nonblocking mode is set for socket, and no data are available to
recv fails immediately rather than waiting. See File Status Flags, for information about nonblocking mode.
This function returns the number of bytes received, or
-1 on failure.
errno error conditions are defined for this function:
- The socket argument is not a valid file descriptor.
- The descriptor socket is not a socket.
- Nonblocking mode has been set on the socket, and the read operation
would block. (Normally,
recv blocks until there is input
available to be read.)
- The operation was interrupted by a signal before any data was read.
See Interrupted Primitives.
- You never connected this socket.
This function is defined as a cancellation point in multi-threaded
programs, so one has to be prepared for this and make sure that
allocated resources (like memory, files descriptors, semaphores or
whatever) are freed even if the thread is canceled.