Provided by:
manpages-de-dev_0.5-4.1ubuntu1_all 
BEZEICHNUNG
readv, writev - lese bzw. schreibe Daten in mehrere Puffer
ÜBERSICHT
#include <sys/uio.h>
int readv(int filedes, const struct iovec *vector,
size_t count);
int writev(int filedes, const struct iovec *vector,
size_t count);
BESCHREIBUNG
Die Funktion readv() liest count Blöcke aus der Datei, die mit dem
Dateidescriptor filedes verbunden ist, in die verschiedenen Puffer, die
durch vector beschrieben sind.
Die Funktion writev() schreibt höchstens count Blöcke, die durch vector
beschrieben sind, in die Datei, die mit dem Dateidescriptor filedes
verbunden ist.
Der Zeiger vector zeigt auf einen struct iovec, der in <sys/uio.h> wie
folgt definiert ist.
struct iovect {
void *iovbase; /* Anfangsadresse */
size_t iov_len; /* Anzahl der Bytes */
};
Die Puffer werden in folgender Reihenfolge abgearbeitet: vector[0],
vector[1], ... vector[count]
Die Funktion readv() arbeitet genauso wie read(2) mit der Ausnahme,
dass in verschiedene Puffer geschrieben wird.
Die Funktion writev() arbeitet genauso wie write(2) mit der Ausnahme,
dass verschiedene Puffer geschrieben werden.
RÜCKGABEWERT
Die Funktion readv() gibt die Anzahl der gelesenen Bytes oder -1 im
Fehlerfall zurück, die Funktion writev() gibt die Anzahl der
geschriebenen Bytes zurück
FEHLER
Wenn die Funktionen readv() und writev() fehlschlagen, setzen sie errno
entsprechend:
EBADF fd ist kein gültiger Dateideskriptor.
EINVAL Von fd kann nicht gelesen (bei readv()) bzw. geschrieben (bei
writev()) werden.
EFAULT buf befindet sich außerhalb des vom Prozess erreichbaren
Speicherbereiches.
EAGAIN Nicht blockierende E/A wurde beim Aufruf von open() gewählt,
aber der Lese- oder Schreibvorgang konnte nicht sofort erledigt
werden.
EINTR Der Lese- oder Schreibvorgang wurde unterbrochen bevor Daten
übertragen werden konnten.
KONFORM ZU
unbekannt
BUGS
Es ist nicht ratsam, Aufrufe von Funktionen wie readv() oder writev(),
die direkt mit den Dateideskriptoren agieren, mit Funktionen aus der
stdio Bibliothek zu mischen. Die Ergebnisse sind undefiniert und sehr
wahrscheinlich nicht die gewünschten.
SIEHE AUCH
read(2), write(2).