logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

iob_send - send I/O batch

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).

Name

       iob_send - send I/O batch

See Also

iob_reset(3), iob_send(3), iob_addbuf(3), iob_adds_free(3), iob_addfile(3), iob_prefetch(3)

                                                                                                     iob_send(3)

Syntax

#include<libowfat/iob.h>

       int64 iob_send(int64 s,io_batch* b);

See Also