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
       returns -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	unnecessary 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+14.3.quarterly>

home | help