Go to the previous, next section.

Receiving Data

The recv function is declared in the header file `sys/socket.h'. If your flags argument is zero, you can just as well use read instead of recv; see section Input and Output Primitives.

Function: int recv (int socket, void *buffer, size_t size, int flags)

The recv function is like read, but with the additional flags flags. The possible values of flags are described In section Socket Data Options.

If nonblocking mode is set for socket, and no data is available to be read, recv fails immediately rather than waiting. See section File Status Flags, for information about nonblocking mode.

This function returns the number of bytes received, or -1 on failure. The following 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 section Primitives Interrupted by Signals.

You never connected this socket.

Go to the previous, next section.