ABCDEFGHIJKLMNOPQRSTUVWXYZ

writev

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



NAME
       readv, writev - read or write a vector

SYNOPSIS
       #include <sys/uio.h>

       ssize_t readv(int fd, const struct iovec *vector, int count);
       ssize_t writev(int fd, const struct iovec *vector, int count);

       struct iovec {
           void *iov_base;    /* Starting address */
           size_t iov_len;    /* Length in bytes  */
       };

DESCRIPTION
       readv  reads  data  from file descriptor fd, and puts the result in the
       buffers described by vector. The number  of  buffers  is  specified  by
       count.  The  buffers  are filled in the order specified.  Operates just
       like read except that data is put in vector  instead  of  a  contiguous
       buffer.

       writev  writes  data  to  file  descriptor  fd,  and  from  the buffers
       described by vector. The number of buffers is specified by  count.  The
       buffers  are  used  in  the  order specified.  Operates just like write
       except that data is taken from vector instead of a contiguous buffer.


RETURN VALUE
       On success readv returns the number of bytes read.  On  success  writev
       returns  the  number  of  bytes written.  On error, -1 is returned, and
       errno is set appropriately.


ERRORS
       EINVAL An invalid argument was  given.  For  instance  count  might  be
              greater  than  MAX_IOVEC, or zero.  fd could also be attached to
              an object  which  is  unsuitable  for  reading  (for  readv)  or
              writing (for writev).

       EFAULT "Segmentation fault." Most likely vector or some of the iov_base
              pointers points to memory that is not properly allocated.

       EBADF  The file descriptor fd is not valid.

       EINTR  The call was  interrupted  by  a  signal  before  any  data  was
              read/written.

       EAGAIN Non-blocking  I/O has been selected using O_NONBLOCK and no data
              was immediately available for reading.  (Or the file  descriptor
              fd is for an object that is locked.)

       EISDIR fd refers to a directory.

       EOPNOTSUPP
              fd  refers  to  a  socket  or device that does not support read-
              ing/writing.

       ENOMEM Insufficient kernel memory was available.

       Other errors may occur, depending on the object connected to fd.

CONFORMING TO
       4.4BSD (the readv and writev functions  first  appeared  in  BSD  4.2),
       Unix98.  Linux libc5 used size_t as the type of the count parameter.

SEE ALSO
       read(2), write(2), fprintf(3), fscanf(3)



Linux 2.2.0-pre8                  1999-01-20                          READV(2)