Home Man
Today's Posts

Linux & Unix Commands - Search Man Pages
Man Page or Keyword Search:
Select Section of Man Page:
Select Man Page Repository:

Linux 2.6 - man page for recv (linux section 3posix)

RECV(P) 			    POSIX Programmer's Manual				  RECV(P)

       recv - receive a message from a connected socket

       #include <sys/socket.h>

       ssize_t recv(int socket, void *buffer, size_t length, int flags);

       The  recv() function shall receive a message from a connection-mode or connectionless-mode
       socket. It is normally used with connected sockets because it does not permit the applica-
       tion to retrieve the source address of received data.

       The recv() function takes the following arguments:

       socket Specifies the socket file descriptor.

       buffer Points to a buffer where the message should be stored.

       length Specifies the length in bytes of the buffer pointed to by the buffer argument.

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

	      Peeks at an incoming message. The data is treated as unread and the next recv()  or
	      similar function shall still return this data.

	      Requests	out-of-band  data. The significance and semantics of out-of-band data are

	      On SOCK_STREAM sockets this requests that the function block until the full  amount
	      of  data can be returned. The function may return the smaller amount of data if the
	      socket is a message-based socket, if a signal is caught, if the connection is  ter-
	      minated, if MSG_PEEK was specified, or if an error is pending for the socket.

       The  recv()  function shall return the length of the message written to the buffer pointed
       to by the buffer argument. For message-based sockets, such  as  SOCK_DGRAM  and	SOCK_SEQ-
       PACKET,	the entire message shall be read in a single operation.  If a message is too long
       to fit in the supplied buffer, and MSG_PEEK is not set in the flags argument,  the  excess
       bytes  shall  be  discarded. For stream-based sockets, such as SOCK_STREAM, message bound-
       aries shall be ignored. In this case, data shall be returned to the user  as  soon  as  it
       becomes available, and no data shall be discarded.

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

       If no messages are available at the socket and O_NONBLOCK is not set on the socket's  file
       descriptor,  recv()  shall  block until a message arrives. If no messages are available at
       the socket and O_NONBLOCK is set on the socket's file descriptor, recv()  shall	fail  and
       set errno to [EAGAIN] or [EWOULDBLOCK].

       Upon  successful completion, recv() shall return the length of the message in bytes. If no
       messages are available to be received and the peer  has	performed  an  orderly	shutdown,
       recv()  shall  return  0.  Otherwise,  -1  shall be returned and errno set to indicate the

       The recv() function shall fail if:


	      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 block-
	      ing to await out-of-band data.

       EBADF  The socket argument is not a valid file descriptor.

	      A connection was forcibly closed by a peer.

       EINTR  The  recv()  function  was interrupted by a signal that was caught, before any data
	      was available.

       EINVAL The MSG_OOB flag is set and no out-of-band data is available.

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

	      The socket argument does not refer to a socket.

	      The specified flags are not supported for this socket type or protocol.

	      The connection timed out during connection establishment, or due to a  transmission
	      timeout on active connection.

       The recv() function may fail if:

       EIO    An I/O error occurred while reading from or writing to the file system.

	      Insufficient resources were available in the system to perform the operation.

       ENOMEM Insufficient memory was available to fulfill the request.

       The following sections are informative.


       The  recv()  function is equivalent to recvfrom() with a zero address_len argument, and to
       read() if no flags are used.

       The select() and poll() functions can be used to determine when data is	available  to  be



       poll()  ,  read()  ,  recvmsg()	, recvfrom() , select() , send() , sendmsg() , sendto() ,
       shutdown() , socket() , write() , the Base  Definitions	volume	of  IEEE Std 1003.1-2001,

       Portions  of  this  text  are  reprinted  and  reproduced in electronic form from IEEE Std
       1003.1, 2003 Edition, Standard for Information Technology  --  Portable	Operating  System
       Interface  (POSIX), The Open Group Base Specifications Issue 6, Copyright (C) 2001-2003 by
       the Institute of Electrical and Electronics Engineers, Inc and  The  Open  Group.  In  the
       event  of  any  discrepancy  between this version and the original IEEE and The Open Group
       Standard, the original IEEE and The Open Group Standard is the referee document. The orig-
       inal Standard can be obtained online at http://www.opengroup.org/unix/online.html .

IEEE/The Open Group			       2003					  RECV(P)

All times are GMT -4. The time now is 08:29 PM.

Unix & Linux Forums Content Copyrightę1993-2018. All Rights Reserved.
Show Password