FreeBSD Manual Pages
iob_send(3) Library Functions Manual iob_send(3) NAME iob_send - send I/O batch SYNTAX #include <libowfat/iob.h> int64 iob_send(int64 s,io_batch* b); DESCRIPTION iob_send sends the (rest of) b over the socket s. iob_send returns the number of bytes written, 0 if there were no more bytes to be written in the batch, -1 for EAGAIN, or -3 for a permanent error (for example "connection reset by peer"). The normal usage pattern is using io_wait to know when a descriptor is writable, and then calling iob_send until it returns 0, -1 or -3. If it returns 0, terminate the loop (everything was written OK). If it re- turns -1, call io_wait again. If it returned -3, signal an error and close the socket. The benefit of the I/O batch API is that it exploits platform specific APIs like FreeBSD's sendfile. The file contents will always be sent in a way that allows the operating systems to perform zero copy TCP, and the buffers will always be sent using as few syscalls as possible and avoiding unneces- sary copying (using writev). SEE ALSO iob_reset(3), iob_send(3), iob_addbuf(3), iob_adds_free(3), iob_addfile(3), iob_prefetch(3) iob_send(3)
NAME | SYNTAX | DESCRIPTION | SEE ALSO
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=libowfat_iob_send&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>
