Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
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)

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>

home | help