send
====
:title: Shellcode Compiler Runtime

---------------------------------------------
ssize_t send(int fd, const void* buf, size_t n, int flags);
---------------------------------------------

Sends `n` bytes from the buffer `buf` over the socket `fd`.  Returns the number of bytes sent, or
the negation of the error code on error.  It is possible for the number of bytes sent to be smaller than the number
of bytes requested.

IMPORTANT: If the system call is interrupted, this function will return `-EINTR`.  This differs from most C runtimes,
where `-1` is returned with `errno` set to `EINTR`.  As this runtime does not have `errno`, callers should check
for `-EINTR` and a result less than zero in the error checking code.

See also
--------
link:recv.html[recv],
link:recv_all.html[recv_all],
link:recvfrom.html[recvfrom],
link:send_all.html[send_all],
link:send_string.html[send_string],
link:sendto.html[sendto]
