recv man page on SmartOS

Man page or keyword search:  
man Server   16655 pages
apropos Keyword Search (all sections)
Output format
SmartOS logo
[printable version]


       recv, recvfrom, recvmsg - receive a message from a socket

       cc [ flag... ] file... -lsocket	-lnsl  [ library... ]
       #include <sys/types.h>
       #include <sys/socket.h>
       #include <sys/uio.h>

       ssize_t recv(int s, void *buf, size_t len, int flags);

       ssize_t recvfrom(int s, void *buf, size_t len, int flags,
	    struct sockaddr *from, socklen_t *fromlen);

       ssize_t recvmsg(int s, struct msghdr *msg, int flags);

       The  recv(),  recvfrom(),  and  recvmsg() functions are used to receive
       messages	 from  another	socket.	 The  s	  socket   is	created	  with

       If  from	 is  a	non-NULL pointer, the source address of the message is
       filled in. The value-result parameter fromlen  is  initialized  to  the
       size of the buffer associated with from and modified on return to indi‐
       cate the actual size of the address stored in the buffer. The length of
       the  message  is	 returned. If a message is too long to fit in the sup‐
       plied buffer, excess bytes may be discarded depending on	 the  type  of
       socket from which the message is received. See socket(3SOCKET).

       If  no messages are available at the socket, the receive call waits for
       a message to arrive. If the socket is non-blocking, -1 is returned with
       the external variable errno set to EWOULDBLOCK. See fcntl(2).

       For processes on the same host, recvmsg() can be used to receive a file
       descriptor from another process, but it cannot receive ancillary	 data.
       See libxnet(3LIB).

       If  a  zero-length  buffer is specified for a message, an EOF condition
       results that is indistinguishable from the  successful  transfer	 of  a
       file  descriptor.  For that reason, one or more bytes of data should be
       provided when recvmsg() passes a file descriptor.

       The select(3C) call can be used to determine when more data arrives.

       The flags parameter is formed by an OR operation on one or more of  the

		       Read  any out-of-band data present on the socket rather
		       than the regular in-band data.

		       Peek at the data present on the	socket.	 The  data  is
		       returned,  but  not  consumed  to  allow	 a  subsequent
		       receive operation to see the same data.

		       Messages are blocked until  the	full  amount  of  data
		       requested is returned. The recv() function can return a
		       smaller amount of data if a signal is caught, the  con‐
		       nection	is terminated, MSG_PEEK is specified, or if an
		       error is pending for the socket.

		       Pending	messages  received  on	the   connection   are
		       returned. If data is unavailable, the function does not
		       block. This behavior is the  equivalent	to  specifying
		       O_NONBLOCK  on  the file descriptor of a socket, except
		       that write requests are unaffected.

       The  recvmsg()  function	 call  uses  a	msghdr	structure  defined  in
       <sys/socket.h> to minimize the number of directly supplied parameters.

       Upon  successful completion, these functions return the number of bytes
       received. Otherwise, they return -1  and	 set  errno  to	 indicate  the

       The recv(), recvfrom(), and recvmsg() functions return errors under the
       following conditions:

		       The s file descriptor is invalid.

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

		       The  operation is interrupted by the delivery of a sig‐
		       nal before any data is available to be received.

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

		       Insufficient user memory is available to complete oper‐

		       Insufficient STREAMS resources are  available  for  the
		       operation to complete.

		       s is not a socket.

		       A stale NFS file handle exists.

		       The  socket  is	marked	non-blocking and the requested
		       operation would block.

		       The requested connection was refused by the  peer.  For
		       connected  IPv4	and  IPv6 datagram sockets, this indi‐
		       cates that the system received an ICMP Destination Port
		       Unreachable message from the peer.

       The  recv()  and	 recvfrom()  functions fail under the following condi‐

		 The len argument overflows a ssize_t.

       The recvmsg() function returns errors under the following conditions:

		 The msg_iovlen member of the msghdr structure pointed	to  by
		 msg  is  less	than or equal to 0, or greater than [IOV_MAX}.
		 See Intro(2) for a definition of [IOV_MAX}.

		 One of the iov_len values in the msg_iov array member of  the
		 msghdr structure pointed to by msg is negative, or the sum of
		 the iov_len values in the msg_iov array overflows a ssize_t.

       See attributes(5) for descriptions of the following attributes:

       │Interface Stability │ Committed	      │
       │MT-Level	    │ Safe	      │

       fcntl(2),  ioctl(2),  read(2),  connect(3SOCKET),  getsockopt(3SOCKET),
       libxnet(3LIB),	   select(3C),	   send(3SOCKET),     socket(3SOCKET),
       socket.h(3HEAD), attributes(5)

				 Aug 20, 2007			 RECV(3SOCKET)

List of man pages available for SmartOS

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
Vote for polarhome
Free Shell Accounts :: the biggest list on the net