glenda.party
term% ls -F
term% pwd
$home/manuals/9front/2/readv
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 re‐
       ceived.  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)