The send
function is declared in the header file `sys/socket.h'. If your flags argument is zero, you can just as well use write
instead of send
; see I/O Primitives. If the socket was connected but the connection has broken, you get a SIGPIPE
signal for any use of send
or write
(see Miscellaneous Signals).
send
function is like write
, but with the additional flags flags. The possible values of flags are described in Socket Data Options.
This function returns the number of bytes transmitted, or -1
on failure. If the socket is nonblocking, then send
(like write
) can return after sending just part of the data. See File Status Flags, for information about nonblocking mode.
Note, however, that a successful return value merely indicates that the message has been sent without error, not necessarily that it has been received without error.
The following errno
error conditions are defined for this function:
EBADF
EINTR
ENOTSOCK
EMSGSIZE
EWOULDBLOCK
send
blocks until the operation can be completed.)
ENOBUFS
ENOTCONN
EPIPE
send
generates a SIGPIPE
signal first; if that signal is ignored or blocked, or if its handler returns, then send
fails with EPIPE
.