READV(3)            Linux Programmer's Manual            READV(3)

NAME
       readv, writev - read or write data into multiple buffers

SYNOPSIS
       #include <sys/uio.h>

       int readv(int filedes, const struct iovec *vector,
                 size_t count);

       int writev(int filedes, const struct iovec *vector,
                 size_t count);

DESCRIPTION
       The  readv()  function  reads  count  blocks from the file
       associated with the file descriptor filedes into the  mul-
       tiple buffers described by vector.

       The   writev()   function  writes  at  most  count  blocks
       described by vector to the file associated with  the  file
       descriptor filedes.

       The  pointer  vector  points  to a struct iovec defined in
       <sys/uio.h> as

          struct iovect
          {
              void *iovbase; /* Starting address  */
              size_t iov_len;    /* Number of bytes */
          } ;

       Buffers are processed in the order  vector[0],  vector[1],
       ... vector[count].

       The  readv()  function works just like read(2) except that
       multiple buffers are filled.

       The writev() function works just like write(2) except that
       multiple buffers are written out.

RETURN VALUES
       The  readv() function returns the number of bytes or -1 on
       error; the writev() function returns the number  of  bytes
       written.

ERRORS
       The  readv() and writev() functions can fail and set errno
       to the following values:

       EBADF  fd is not a valid file descriptor.

       EINVAL fd is unsuitable for reading (for readv()) or writ-
              ing (for writev()).

       EFAULT buf is outside the processes' address space.

       EAGAIN Non-blocking  I/O  had  been selected in the open()
              call, and reading or  writing  could  not  be  done
              immediately.

       EINTR  Reading  or writing was interrupted before any data
              was transferred.

CONFORMING TO
       unknown

BUGS
       It is not advisable to mix calls to functions like readv()
       or  writev(),  which operate on file descriptors, with the
       functions from the stdio  library;  the  results  will  be
       undefined and probably not what you want.

SEE ALSO
       read(2), write(2)

GNU                       April 25, 1993                        1