Provided by:
manpages-de-dev_0.5-4.1ubuntu1_all 
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).