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

BEZEICHNUNG

       lseek - read/write Datei offset verändern

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

              man -LC 2 lseek

       eingeben.

ÜBERSICHT

       #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,  gemäß  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 Größe plus offset Bytes.

       Die  Funktion  lseek  erlaubt es, den Offset einer Datei hinter ihr end-of-file zu setzen.
       Wenn später Daten geschrieben werden, ergeben Lesezugriffe  auf  die  Lücke  zwischen  der
       eigentlichen  Datei und den neuen Daten einen Rückgabewert von Null (bis tatsächlich Daten
       in die Lücke geschrieben werden).

RÜCKGABEWERT

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

FEHLER

       EBADF  Filedes ist kein geöffneter 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ÄNKUNGEN

       Manche Geräte unterstützen kein Vor- und Zurückspulen und POSIX spezifiziert nicht, welche
       es unterstützen müssen.

       Einschränkung unter Linux: Wendet man lseek auf ein tty-Device an, gibt es ESPIPE  zurück.
       Andere  Systeme  liefern  die  Anzahl  der  geschriebenen Bytes und verwenden SEEK_SET als
       Zähler. Manche Devices wie /dev/null verursachen den Fehler  ESPIPE  nicht,  aber  liefern
       einen Zeiger zurück, 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).