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

BEZEICHNUNG

       lseek - read/write Datei offset verändern

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