Provided by: manpages-es_1.55-10_all bug

NOMBRE

       readv, writev - leen o escriben datos en múltiples buffers

SINOPSIS

       #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);

DESCRIPCIÓN

       La  función readv() lee count bloques del fichero asociado con el descriptor de fichero fd
       en múltiples buffers descritos por vector.

       La función writev() escribe como máximo count bloques descritos por vector en  el  fichero
       asociado con el descriptor de fichero fd.

       El puntero vector apunta a una estructura iovec definida en <sys/uio.h> como

          struct iovec {
              void *iov_base;   /* Dirección de comienzo */
              size_t iov_len;   /* Número de bytes */
          };

       Los buffers son procesados en el orden especificado.

       La  función  readv()  trabaja  exactamente  igual  que read(2) salvo que rellena múltiples
       buffers.

       La función writev() trabaja exactamente igual que write(2)  salvo  que  escribe  múltiples
       buffers.

VALOR DEVUELTO

       En  caso  de  éxito,  la  función  readv()  devuelve el número de bytes leídos; la función
       writev() devuelve el número de bytes escritos.  En caso de error, se  devuelve  -1,  y  se
       modifica errno con un valor apropiado.

ERRORES

       Los  errores  son  los  mismos  que  para read(2) y write(2).  Adicionalmente se define el
       siguiente error.

       EINVAL La suma de los valores iov_len provoca un desbordamiento por  arriba  en  un  valor
              ssize_t.  O bien, el contador count es cero o mayor que MAX_IOVEC.

CONFORME A

       4.4BSD  (las  funciones  readv  y  writev aparecieron por primera vez en BSD 4.2), Unix98,
       POSIX 1003.1-2001.  La biblioteca libc5 de Linux usaba  size_t  como  tipo  del  parámetro
       count, e int como tipo devuelto por estas funciones.

FALLOS

       No  es  recomendable  mezclar  llamadas  a funciones como readv() o writev(), que trabajan
       sobre descriptores de fichero, con funciones de la biblioteca stdio; los resultados  serán
       indefinidos y probablemente indeseados.

VÉASE TAMBIÉN

       read(2), write(2)

                                         17 octubre 2002                                 READV(2)