Unix/Linux Go Back    


BSD 2.11 - man page for sendmsg (bsd section 2)

Linux & Unix Commands - Search Man Pages
Man Page or Keyword Search:   man
Select Man Page Set:       apropos Keyword Search (sections above)


SEND(2) 										  SEND(2)

NAME
       send, sendto, sendmsg - send a message from a socket

SYNOPSIS
       #include <sys/types.h>
       #include <sys/socket.h>

       cc = send(s, msg, len, flags)
       int cc, s;
       char *msg;
       int len, flags;

       cc = sendto(s, msg, len, flags, to, tolen)
       int cc, s;
       char *msg;
       int len, flags;
       struct sockaddr *to;
       int tolen;

       cc = sendmsg(s, msg, flags)
       int cc, s;
       struct msghdr msg[];
       int flags;

DESCRIPTION
       Send,  sendto,  and sendmsg are used to transmit a message to another socket.  Send may be
       used only when the socket is in a connected state, while sendto and sendmsg may be used at
       any time.

       The  address  of  the target is given by to with tolen specifying its size.  The length of
       the message is given by len.  If the message is too long to pass  atomically  through  the
       underlying protocol, then the error EMSGSIZE is returned, and the message is not transmit-
       ted.

       No indication of failure to deliver is implicit in a send.  Return values of  -1  indicate
       some locally detected errors.

       If  no  messages  space	is available at the socket to hold the message to be transmitted,
       then send normally blocks, unless the socket has been placed  in  non-blocking  I/O  mode.
       The select(2) call may be used to determine when it is possible to send more data.

       The flags parameter may include one or more of the following:

	      #define  MSG_OOB	       0x1    /* process out-of-band data */
	      #define  MSG_DONTROUTE   0x4    /* bypass routing, use direct interface */
       The  flag  MSG_OOB  is used to send "out-of-band" data on sockets that support this notion
       (e.g.  SOCK_STREAM);  the  underlying  protocol	must  also  support  "out-of-band"  data.
       MSG_DONTROUTE is usually used only by diagnostic or routing programs.

       See recv(2) for a description of the msghdr structure.

RETURN VALUE
       The call returns the number of characters sent, or -1 if an error occurred.

ERRORS
       [EBADF]		   An invalid descriptor was specified.

       [ENOTSOCK]	   The argument s is not a socket.

       [EFAULT] 	   An invalid user space address was specified for a parameter.

       [EMSGSIZE]	   The	socket	requires that message be sent atomically, and the size of
			   the message to be sent made this impossible.

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

       [ENOBUFS]	   The	system	was unable to allocate an internal buffer.  The operation
			   may succeed when buffers become available.

       [ENOBUFS]	   The output queue for a network interface  was  full.   This	generally
			   indicates that the interface has stopped sending, but may be caused by
			   transient congestion.

SEE ALSO
       fcntl(2), recv(2), select(2), getsockopt(2), socket(2), write(2)

4.2 Berkeley Distribution		   May 14, 1986 				  SEND(2)
Unix & Linux Commands & Man Pages : ©2000 - 2018 Unix and Linux Forums


All times are GMT -4. The time now is 01:40 PM.