*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->IRIX man pages -> standard/send (2)              


SEND(2)								       SEND(2)

NAME    [Toc]    [Back]

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

C SYNOPSIS    [Toc]    [Back]

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

     int send(int s, const void	*msg, int len, int flags);
     int sendto(int s, const void *msg,	int len, int flags,
	       struct sockaddr *to, int	tolen);

     int sendmsg(int s,	const struct msghdr *msg, int flags);

DESCRIPTION    [Toc]    [Back]

     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 when the socket is unconnected.

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

     Usually no	indication of failure to deliver is implicit in	a send.
     Return values of -1 indicate some locally detected	errors.	 Connected
     datagram sockets may receive error	indications from a previous send.

     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 */
     #define MSG_DONT_BRKPG   0x100  /*	don't break up pages for send */

     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.  MSG_DONT_BRKPG is	used to	allow the
     user, on a	per send basis to stop page flipping and the break up of large
     memory pages to 16k.  This	can be done automatically for all large	pages
     transfers by setting the mtune/bsd/ip_nolgpg_brkup	variable.  NOTE	that
     setting this can have a negative effect on	performance.

									Page 1

SEND(2)								       SEND(2)

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

RETURN VALUE    [Toc]    [Back]

     The call returns the number of characters sent, or	-1 if an error

ERRORS    [Toc]    [Back]

     [EBADF]		 An invalid descriptor was specified.

     [ENOTSOCK]		 The argument s	is not a socket.

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

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

     [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

     [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

     [ECONNREFUSED]	 The remote port was invalid when using	the send call
			 on a connected	datagram socket.

     [EISCONN]		 A sendto or sendmsg call was used on a	connected

     [EACCES]		 The requested operation specified a broadcast address
			 as the	destination but	the SO_BROADCAST socket	option
			 was not enabled (see setsockopt(2)).

     [EHOSTUNREACH]	 The remote host was unreachable via the network.

     [ENETUNREACH]	 The remote network is unknown to the routing system.

     [EHOSTDOWN]	 The remote host was determined	to be down, possibly
			 due to	a failure to resolve its MAC-level address
			 (see arp(7P)).

SEE ALSO    [Toc]    [Back]

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

									Page 2

SEND(2)								       SEND(2)

NOTE    [Toc]    [Back]

     ABI-compliant versions of the above call can be obtained from

									PPPPaaaaggggeeee 3333
[ Back ]
 Similar pages
Name OS Title
sendmsg Tru64 Send a message from a socket using a message structure
send Tru64 Send messages on a socket
sendfile FreeBSD send a file to a socket
sendto Tru64 Send messages through a socket
sendfile HP-UX send the contents of a file through a socket
sendfile Tru64 Send the contents of a file through a socket
shutdown Tru64 Shut down socket send and receive operations
sendfile64 HP-UX send the contents of a Large File through a socket
recvmsg Tru64 Receive a message from a socket using a message structure
send Tru64 send a message (only available within the message handling system, mh)
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service