Provided by: manpages-de-dev_0.5-2ubuntu1_all bug

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).