![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() ![]()
lseek ist das was im High-Level-Datei-I/O fseek ist und dient zum Verschieben des Dateizeigers in der geöffneten Datei mit dem Handle. Hier der Syntax von lseek...
Die Datei in der wir unseren Schreib-/Lesezeiger verschieben wollen geben wir mit dem Handle(Filedeskriptor) handle an, die wir natürlich zuvor mit open oder creat geöffnet bzw. erzeugt haben. Als offset geben wir an um wie viele Bytes wir unseren Lese-/Schreibzeiger vom der Position wie verschieben wollen. Die Angaben von wie sind die selben wie schon bei fseek. Hier nochmals die Tabelle welche vordefinierten Möglichkeiten sie haben...
Als Rückgabewert gibt diese Funktion den Wert der aktuellen Position des Schreib-/Lesezeigers zurück. z.B....
Bei Fehler gibt die Funktion -1 zurück. Sie sollten aber die Funktion lseek nicht auf ist <0 prüfen sondern auf ist -1, da es durchaus sein kann das es Gerätedateien gibt die einen negativen Wert liefern. Weiter Möglichkeiten von lseek...
Schreib-/Lesezeiger um 100 Bytes von der aktuellen Position nach vorne versetzen...
Schreib-/Lesezeiger um 10 Bytes von der aktuellen Position zurücksetzen....
Schreib-/Lesezeiger auf das letzte Byte setzen (nicht EOF)...
Zu diesem Thema will ich nur ein kleines Beispiel zeigen da lseek eigentlich genauso eingesetzt wird wie fseek...
Den Pfad müssen sie gegebenfalls anpassen.
Das Programm bewirkt das selbe wie das Kommando rdev unter Unix/Linux und ist auch nur auf diesem System ausführbar. Mit diesem Programm können wir für ein Kernelimage root-flags, ram-size, vga-mode und root-device die Werte auslesen die gesetzt sind. ...vorfinden. Außerdem ist der Rückgabewert long nur für Systemen mit SVR1-3 gültig. SVR4 liefert den Primitiven Datentyp off_t zurück, der bei den meisten System auch long ist. BSD liefert hingegen einen int-Wert zurück. ![]() ![]() ![]() |