Provided by: manpages-de-dev_0.10-1_all bug

BEZEICHNUNG

       lseek - read/write Datei offset verandern

       Diese  Handbuchseite ist eventuell veraltet. Im Zweifelsfall ziehen Sie
       die englischsprachige Handbuchseite zu Rate, indem Sie

              man -LC 2 lseek

       eingeben.

"UBERSICHT

       #include <sys/types.h>
       #include <unistd.h>

       off_t lseek(int filedes, off_t offset, int whence);

BESCHREIBUNG

       Die Funktion lseek setzt den Offset des  Dateideskriptors  filedes  auf
       offset, gemaB des Wertes von whence, der sich wie folgt zusammensetzt:

       SEEK_SET
              Der neue Offset wird auf offset Bytes gesetzt.

       SEEK_CUR
              Der neue Offset ist die aktuelle Position plus offset Bytes.

       SEEK_END
              Der neue Offset ist die Datei GroBe plus offset Bytes.

       Die  Funktion  lseek erlaubt es, den Offset einer Datei hinter ihr end-
       of-file zu setzen.   Wenn  spater  Daten  geschrieben  werden,  ergeben
       Lesezugriffe  auf  die  Lucke  zwischen  der eigentlichen Datei und den
       neuen Daten einen Ruckgabewert von Null (bis tatsachlich Daten  in  die
       Lucke geschrieben werden).

R"UCKGABEWERT

       Bei  Erfolg  liefert  lseek  die  neue Position in Bytes vom Anfang der
       Datei aus.  Anderenfalls wird (off_t)-1 zuruckgegeben und der Fehler in
       errno gesetzt.

FEHLER

       EBADF  Filedes ist kein geoffneter Datei Zeiger.

       ESPIPE Filedes beschreibt eine Pipe, einen Socket oder ein FIFO.

       EINVAL Whence hat einen falschen Wert.

KONFORM ZU

       SVr4, POSIX, BSD 4.3

EINSCHR"ANKUNGEN

       Manche  Gerate  unterstutzen  kein  Vor-  und  Zuruckspulen  und  POSIX
       spezifiziert nicht, welche es unterstutzen mussen.

       Einschrankung unter Linux: Wendet man lseek auf ein tty-Device an, gibt
       es  ESPIPE zuruck.  Andere Systeme liefern die Anzahl der geschriebenen
       Bytes und verwenden SEEK_SET als Zahler.  Manche Devices wie  /dev/null
       verursachen  den Fehler ESPIPE nicht, aber liefern einen Zeiger zuruck,
       dessen Wert nicht definiert ist.

ANMERKUNGEN

       Wenn alter Code konvertiert wird, ersetzen Sie  die  Werte  von  whence
       durch die folgenden Makros:

        old       new
       0        SEEK_SET
       1        SEEK_CUR
       2        SEEK_END
       L_SET    SEEK_SET
       L_INCR   SEEK_CUR
       L_XTND   SEEK_END

       SVR1-3 liefert long statt off_t, BSD liefert int.

       Beachten  Sie,  dass  Datei-Deskriptoren,  die  mit dup(2) oder fork(2)
       erstellt wurden, den aktuellen Positions-Zeiger gemeinsam nutzen.  Wenn
       lseek bei solchen Dateien verwendet wird, kann es zu unerwarteten Race-
       Bedingungen kommen.

SIEHE AUCH

       dup(2), fork(2), open(2), fseek(3).