readv

READV(2)                 Manual del Programador de Linux                READV(2)



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)