READV

Section: Manuel du programmeur Linux (2)
Updated: 20 janvier 2002
Index Retour au Menu Principal

 

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 résultat 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 contigu.

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 identique à 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 avant d'avoir pu lire/écrire quoi que ce soit.
EAGAIN
Les entrées/sorties sont non-bloquantes (O_NONBLOCK). Soit aucune donnée n'est disponible en lecture, soit l'objet associe à fd est verrouillé.
EISDIR
fd correspond à un répertoire.
EOPNOTSUPP
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 readv et writev 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.



 

Index

NOM
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ERREURS
CONFORMITÉ
VOIR AUSSI
TRADUCTION


Time: 21:42:53 GMT, December 19, 2004