tail head cat sleep
QR code linking to this page

Manpage  — READV

BEZEICHNUNG

readv, writev - lese bzw. schreibe Daten in mehrere Puffer

INHALT

Ü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, daß in verschiedene Puffer geschrieben wird.

Die Funktion writev() arbeitet genauso wie write(2) mit der Ausnahme, daß 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).

27. Mai 1996 READV (3) GNU

tail head cat sleep
QR code linking to this page


Bitte richten Sie Ihre Kommentare zu diesem Handbuch Seite Service, Ben Bullock. Privacy policy.