"Fossies" - the Fresh Open Source Software archive

Member "manpages-de-0.11/man2/lseek.2" of archive manpages-de_0.11.orig.tar.gz:


Table of Contents

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);BeschreibungDie 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ÜckgabewertBei 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. FehlerEBADF Filedes ist kein
geöffneter Datei Zeiger. ESPIPE Filedes beschreibt eine Pipe, einen Socket
oder ein FIFO. EINVAL Whence hat einen falschen Wert. Konform ZuSVr4, POSIX,
BSD 4.3 EinschrÄnkungenManche 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: oldnew0SEEK_SET1SEEK_CUR2SEEK_ENDL_SETSEEK_SETL_INCRSEEK_CURL_XTNDSEEK_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 Auchdup(2), fork(2), open(2),
fseek(3).