READV(2)           Manuel du programmeur Linux           READV(2)


NOM
       readv, writev - Lire ou écrire un vecteur (vector).

SYNOPSIS
       #include <sys/uio.h>

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

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

DESCRIPTION
       readv lit les données depuis le descripteur de fichier fd,
       et place le resultats dans les buffers décrits par vector.
       Le  nombre  de buffers est indiqué par count.  Les buffers
       sont remplis dans l'ordre spécifié.  Le fonctionnement est
       identique  à  read  à  la seule différence que les données
       sont écrites dans vector plutôt que dans  un  buffer  con­
       tigu.

       writev  écrit  les  données  se  trouvant dans les buffers
       décrits par vector dans le descripteur de fichier fd.   Le
       nombre de buffers est indiqué par count.  Les buffers sont
       lus dans l'ordre spécifié.  Le  fonctionnement  est  iden­
       tique  à  write a la seule différence que les données sont
       lues depuis vector plutôt que depuis un buffer contigu.


VALEUR RENVOYÉE
       readv renvoie le nombre d'octets lus s'il réussit.

       writev renvoie le nombre d'octets lus s'il réussit.

       En cas d'échec -1 est renvoyé, et errno contient  le  code
       d'erreur.


ERREURS
       EINVAL  Un  argument  est  invalide. Par exemple count est
               supérieur à MAX_IOVEC, ou est nul, ou  encore   fd
               correspond  à  un  objet non accessible en lecture
               (pour readv) ou en écriture (pour writev).

       EFAULT  vector ou l'un des iov_base pointent en dehors  de
               l'espace d'adressage accessible.

       EBADF   fd n'est pas un descripteur de fichier valide.

       EINTR   L'appel  système  a  été  interrompu par un signal



Linux                      18 Mai 1999                          1





READV(2)           Manuel du programmeur Linux           READV(2)


               avant d'avoir pu lire/écrire quoi que ce soit.

       EAGAIN  Les entrées/sorties  sont  non-bloquantes  (O_NON­
               BLOCK).   Soit  aucune  donnée n'est disponible en
               lecture, soit l'objet associe à fd est verrouillé.

       EISDIR  fd correspond à un répertoire.

       EOPNOTSUP
               fd correspond à une socket ou à un périphérique ne
               supportant pas la lecture ou l'écriture.

       ENOMEM  Pas assez de mémoire pour le noyau.

       D'autres erreurs peuvent survenir,  en  fonction  du  type
       d'objet associé à fd.

CONFORMITÉ
       BSD  4.4  (les  fonctions readvetwritev sont apparues dans
       BSD 4.2), Unix98. La libc5  de  Linux  utilisait  le  type
       size_t pour le paramètre count ce qui est logique mais pas
       standard.

VOIR AUSSI
       read(2), write(2), fprintf(3), fscanf(3)


TRADUCTION
       Christophe Blaess, 1997.




























Linux                      18 Mai 1999                          2