Copyright (C) 2000-2012 |
Manpages SENDSection: Linux Programmer's Manual (2)Updated: 1999-07 Index Return to Main Contents NAMEsend, sendto, sendmsg - send a message from a socketSYNOPSIS#include <sys/types.h>#include <sys/socket.h>
int send(int s, const void *msg, size_t len,
int flags);
DESCRIPTIONSend, 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, the error EMSGSIZE is returned, and the message is not transmitted. No indication of failure to deliver is implicit in a send. Locally detected errors are indicated by a return value of -1. When the message does not fit into the send buffer of the socket, send normally blocks, unless the socket has been placed in non-blocking I/O mode. In non-blocking mode it would return EAGAIN in this case. The select(2) call may be used to determine when it is possible to send more data. The flags parameter is a flagword and can contain the following flags:
The definition of the msghdr structure follows. See recv(2) and below for an exact description of its fields.
You may send control information using the msg_control and msg_controllen members. The maximum control buffer length the kernel can process is limited per socket by the net.core.optmem_max sysctl; see socket(7). RETURN VALUEThe calls return the number of characters sent, or -1 if an error occurred.ERRORSThese are some standard errors generated by the socket layer. Additional errors may be generated and returned from the underlying protocol modules; see their respective manual pages.
CONFORMING TO4.4BSD, SVr4, POSIX 1003.1g draft (these function calls appeared in 4.2BSD).MSG_CONFIRM is a Linux extension. NOTEThe prototypes given above follow the Single Unix Specification, as glibc2 also does; the flags argument was `int' in BSD 4.*, but `unsigned int' in libc4 and libc5; the len argument was `int' in BSD 4.* and libc4, but `size_t' in libc5; the tolen argument was `int' in BSD 4.* and libc4 and libc5. See also accept(2).SEE ALSOfcntl(2), recv(2), select(2), getsockopt(2), sendfile(2), socket(2), write(2), socket(7), ip(7), tcp(7), udp(7)
IndexThis document was created by man2html, using the manual pages. Time: 02:20:46 GMT, December 13, 2024 |