unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (OSF1-V5.1-alpha)
Page:
Section:
Apropos / Subsearch:
optional field



recv(2)								      recv(2)



NAME
  recv - Receives messages from	connected sockets

SYNOPSIS

  #include <&lt;sys/socket.h>&gt;
  ssize_t recv (
	  int socket,
	  void *buffer,
	  size_t length,
	  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
  (see standards(5)):

  #include <&lt;sys/socket.h>&gt;
  int recv (
	  int socket,
	  char *buffer,
	  int length,
	  int flags );

STANDARDS

  Interfaces documented	on this	reference page conform to industry standards
  as follows:

  recv():  XNS5.0

  Refer	to the standards(5) reference page for more information	about indus-
  try standards	and associated tags.

PARAMETERS

  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-
	    ter.

  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.

	    MSG_WAITALL
		      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.

DESCRIPTION

  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
  only.

  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.

NOTES

  [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.

RETURN VALUES

  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.

ERRORS

  If the recv()	function fails,	errno may be set to one	of the following
  values:

  [EBADF]   The	socket parameter is not	valid.

  [ECONNRESET]
	    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
	    is invalid.

  [EINTR]   A signal interrupted the recv() function before any	data was
	    available.

  [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
	    system.

  [ENOBUFS] Insufficient resources were	available in the system	to complete
	    the	call.

  [ENOMEM]  The	system did not have sufficient memory to fulfill the request.

  [ENOSR]   The	available STREAMS resources were insufficient for the
	    operation to complete.

  [ENOTCONN]
	     Receive is	attempted on a connection-oriented socket that is not
	    connected.

  [ENOTSOCK]
	    The	socket parameter refers	to a file, not a socket.

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

  [ETIMEDOUT]
	    The	connection timed out during connection establishment or	due
	    to a transmission timeout on active	connection.

  [EWOULDBLOCK]
	    The	socket is marked nonblocking, and no data is waiting to	be
	    received.

RELATED	INFORMATION

  Functions: recvfrom(2), recvmsg(2), send(2), sendmsg(2), sendto(2),
  select(2), shutdown(2), socket(2), read(2), write(2)

  Standards: standards(5)