READV(2)

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

SYNOPSIS
#include <sys/uio.h>

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

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

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

DESCRIPTION
readv lit les donnees depuis le descripteur de fichier fd, et place le resultats dans les buffers decrits par vector. Le nombre de buffers est indique par count. Les buffers sont remplis dans l'ordre specifie. Le fonctionnement est identique a read a la seule difference que les donnees sont ecrites dans vector plutot que dans un buffer contigu. writev ecrit les donnees se trouvant dans les buffers decrits par vector dans le descripteur de fichier fd. Le nombre de buffers est indique par count. Les buffers sont lus dans l'ordre specifie. Le fonctionnement est identique a write a la seule difference que les donnees sont lues depuis vector plutot que depuis un buffer contigu.

VALEUR RENVOYEE
readv renvoie le nombre d'octets lus s'il reussit. writev renvoie le nombre d'octets lus s'il reussit. En cas d'echec -1 est renvoye, et errno contient le code d'erreur.

ERREURS

EINVAL
    Un argument est invalide. Par exemple count est superieur a MAX_IOVEC, ou est nul, ou encore fd correspond a un objet non accessible en lecture (pour readv) ou en ecriture (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 systeme a ete interrompu par un signal avant d'avoir pu lire/ecrire quoi que ce soit.

EAGAIN
    Les entrees/sorties sont non-bloquantes (O_NONBLOCK). Soit aucune donnee n'est disponible en lecture, soit l'objet associe a fd est verrouille.

EISDIR
    fd correspond a un repertoire.

EOPNOTSUP
    fd correspond a une socket ou a un peripherique ne supportant pas la lecture ou l'ecriture.

D'autres erreurs peuvent survenir, en fonction du type d'objet associe a fd.

CONFORMITE
BSD 4.4 (les fonctions readvetwritev sont apparues dans BSD 4.2).

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