Home :: International :: Manuals :: Howto :: FAQ :: Man Pages :: Email Login

 
 

 

LSEEK

Section: Systemaufrufe (2)
Updated: January 17, 1998
Index Return to Main 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);
 

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:

oldnew
0SEEK_SET
1SEEK_CUR
2SEEK_END
L_SETSEEK_SET
L_INCRSEEK_CUR
L_XTNDSEEK_END

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

Beachten Sie, daß 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).


 

Index

BEZEICHNUNG
ÜBERSICHT
BESCHREIBUNG
RÜCKGABEWERT
FEHLER
KONFORM ZU
EINSCHRÄNKUNGEN
ANMERKUNGEN
SIEHE AUCH

 
 
 
 
Google
  Web Linuxinfor   
 

Home :: Copyright :: Privacy :: Credits :: Get a free Linuxinfor Email Account

Document on this page is part of "Linuxinfor Man Pages in HTML Format: man2". See Index Page for more info about Authorship and Copyright.

1999-2008 Linuxinfor.com. No rights reserved.