glenda.party
term% ls -F
term% cat index.txt
READV(2)                      System Calls Manual                     READV(2)



NAME
       readv, writev, preadv, pwritev - scatter/gather read and write

SYNOPSIS
       #include <u.h>
       #include <libc.h>

       typedef
       struct IOchunk
       {
            void      *addr;
            ulong     len;
       } IOchunk;

       long readv(int fd, IOchunk *io, int nio)

       long preadv(int fd, IOchunk *io, int nio, vlong off)

       long writev(int fd, IOchunk *io, int nio)

       long pwritev(int fd, IOchunk *io, int nio, vlong off)

DESCRIPTION
       These  functions  supplement  the standard read and write operations of
       read(2) with facilities for scatter/gather I/O.  The set of I/O buffers
       is collected into an array of IOchunk structures passed as an argument.

       Readv  reads  data  from  fd  and  returns  the  total  number of bytes
       received.  The received data is stored in the successive  nio  elements
       of  the  IOchunk array, storing io[0].len bytes at io[0].addr, the next
       io[1].len at io[1].addr, and so on.  Preadv does the same, but  implic‐
       itly seeks to I/O offset off by analogy with readv.

       Writev and pwritev are the analogous write routines.

SOURCE
       /sys/src/libc/9sys/readv.c
       /sys/src/libc/9sys/writev.c

SEE ALSO
       intro(2), read(2)

DIAGNOSTICS
       These functions set errstr.

BUGS
       The  implementations use malloc(2) to build a single buffer for a stan‐
       dard call to read or write.  They are placeholders for possible  future
       system calls.



                                                                      READV(2)