C-Programmierung

So verwenden Sie den Lseek-Systemaufruf in C

So verwenden Sie den Lseek-Systemaufruf in C

Der Lseek-Systemaufruf wurde verwendet, um bestimmte Zeichen oder Daten aus einer Datei zu lesen oder Inhalte an den bestimmten Speicherort einer Datei zu schreiben. Dies bedeutet, dass Sie den Inhalt einer Datei zwischendurch lesen oder schreiben können.

Syntax:

Off_t lseek(int fd, off_t Offset, int, woher);

Dieser „lseek“-Systemaufruf erfordert zwei Header-Dateien, z.G., „sys/typen“.h“ und „unistd.h“. Der Systemaufruf lseek erfordert drei Parameter. Der erste ist „fd“, ein Dateideskriptor. Der zweite ist „Offset“, mit dem der Zeiger positioniert wird. Und der dritte Parameter, „whence“, wird verwendet, um die Position eines Dateizeigers anzugeben, z.G., Anfang, Ende, Mitte.

Hilfeseiten installieren:

Um die zusätzlichen Informationen zu Systemaufrufen zu überprüfen, müssen Sie das Paket manpages-dev installieren. Versuchen Sie also, das Linux-Shell-Terminal mit der Tastenkombination Strg+Alt+T zu starten oder suchen Sie es im Aktivitätsbereich. Nachdem Sie das Befehlsterminal erfolgreich gestartet haben, führen Sie die folgende apt-Installationsabfrage aus, um die manpages-dev-Bibliothek zu installieren. Es erfordert Ihren aktuellen Account-Passcode, um mit der Installation fortzufahren. Geben Sie das Passwort ein und tippen Sie auf die Eingabetaste der Schreibmaschine. Der Installationsprozess wird gestartet und beginnt mit dem Sammeln von Informationen.

$ sudo apt install manpages-dev

Der Installationsvorgang lässt Sie ein wenig warten. Nachdem die Installation abgeschlossen ist, können Sie jetzt die Informationen zum Befehl „lseek“ überprüfen.  Schreiben Sie also den folgenden Befehl „man 2“ zusammen mit dem Namen des Systemaufrufs. Wie Sie sehen können, haben wir in der folgenden Anleitung nach „lseek“ gesucht.

$ man 2 lseek

Die Manpage für den Systemaufruf „lseek“ wurde unten geöffnet. Sie können alle Informationen dazu erhalten.

GCC-Compiler installieren:

Jetzt ist es Zeit für uns, den GCC-Compiler zum Kompilieren von C-Sprachdateien zu installieren. Sie müssen also einen sehr einfachen apt install-Befehl in der Shell verwenden, um es zu installieren, während Sie die Compiler-Erweiterung als Schlüsselwortnamen unten verwenden.

$ sudo apt install gcc

Es wird Ihre Zeit dauern, bis die Installation abgeschlossen ist. Nach der Installation des gcc-Pakets ist Ihr Linux-System bereit, C-Sprachdateien darin zu verwenden.

Beispiel 01:

Bevor Sie sich eingehend mit dem Konzept des lseek-Systemaufrufs befassen, müssen Sie ihn mit einem einfachen Dateityp beginnen. Starten Sie also das Terminal und versuchen Sie den folgenden Touch-Befehl, um eine einfache Datei namens „seek“ im Home-Verzeichnis Ihrer Linux-Distribution zu erstellen.

$ berühren suchen

Fügen Sie einige Daten in die Datei „seek“ ein und speichern Sie sie. Sie können den Inhalt der Datei „seek“ in der Befehlszeilen-Shell sehen, indem Sie die einfache „cat“-Abfrage unten verwenden. Der Inhalt einer Datei enthält einige Alphabete und Zahlen zusammen mit dem Zeichen „*“.

$ Katzensuche

Lassen Sie uns eine Datei vom Typ C "test" erstellen.c“ mit dem nano-Schlüsselwort, um es direkt mit dem Nano-Editor zu öffnen. Versuchen Sie dazu den folgenden Befehl auszuführen.

$ Nanotest.c

Lassen Sie uns ein Programm ohne den Befehl lseek überprüfen. Es öffnet sich ein Nano-Texteditor mit einer C-Datei, die auf der oberen Seite erwähnt wird mentioned. Schreiben Sie nun den unten gezeigten Code aus dem Bild in die C-Datei des Editors. Die ersten 4 Zeilen enthalten die Header-Dateien, die für die Implementierung des „lseek“-Befehls erforderlich sind. Danach wurde die Hauptfunktion gestartet. In dieser Hauptmethode haben wir Integer- und Zeichentypdaten für die weitere Verwendung definiert. Die dritte Zeile der Hauptfunktion hat den Open-Aufruf verwendet, um eine Datei namens „seek“ zu öffnen, die wir gerade oben erstellt haben, und der Offset „O_RDWR“ wurde für Lese- und Schreibberechtigungen verwendet. Der Inhalt der Datei wurde an den Dateideskriptor „f“ zurückgegeben. Danach haben wir den ersten Read-Methodenaufruf verwendet, um 12-stellige Daten aus der Suchdatei zu lesen. Die Schreibfunktion wurde verwendet, um Daten in den Bildschirm zu schreiben. Ein weiterer Lesebefehl wurde verwendet, um die nächsten 12 Zeichen aus dem Dateideskriptor „f“ zu erhalten, und der Schreibbefehl liest die nächsten 12 Zeichen in den Ausgabebildschirm. Wir können davon ausgehen, dass die Ausgabe insgesamt 24 Zeichen aus der Datei „seek“ zeigt. Drücken Sie Strg+S, um diese Datei zu speichern und versuchen Sie Strg+X, um sie zu schließen.

Lassen Sie uns einfach den "Test" kompilieren.c“-Datei mithilfe des GCC-Compiler-Befehls unten.

$ gcc-Test.c

Führen Sie nun den Code des „Tests“ aus.c“-Datei, um die Ausgabe des C-Codes wie unten angegeben zu überprüfen. Die Ausgabe hat den 24-Zeichensatz des Inhalts aus der Dateisuche wie folgt angezeigt.

$ ./ein.aus

Lassen Sie uns den Befehl „lseek“ im Code verwenden, um die Ausgabe eines Systemaufrufs zu überprüfen. Also öffne den gleichen Test.c-Datei mit dem folgenden Nano-Befehl.

$ Nanotest.c

Aktualisieren Sie Ihren Code so wie er ist. Dieses Mal haben wir 6 Zeichen aus der Inhaltsdatei zum Lesen und Schreiben verwendet. Der Befehl lseek wurde verwendet, um die nächsten 5 Zeichen aus der Inhaltsdatei zu überspringen und mit dem Offset „SEEK_CUR“ zu den nächsten Zeichen zu springen.

Lass uns diesen Code noch einmal kompilieren.

$ gcc-Test.c

Die Ausgabe des C-Codes mit dem a.out-Befehl zeigt die ersten 6 Zeichen an, überspringt dann die nächsten 5 Zeichen und zeigt dann die nächsten 6 aufeinander folgenden Zeichen an.

$ ./ein.aus

Beispiel 02:

Um etwas zu ändern, ändern wir den Code. Öffnen Sie zuerst die Datei.

$ Nanotest.c

Jetzt verwenden wir den Offset "SEEK_SET", um dem Systemaufruf "lseek" mitzuteilen, dass die nächsten 6 Zeichen ab der 10. Position einer Zeichenfolge angezeigt werden.

Kompilieren Sie die C-Datei.

$ gcc-Test.c

Der Ausgabebefehl a.out hat die 6 Zeichen aus dem 10. Index eines Strings angezeigt.

Fazit:

In diesem Handbuch wurden einige einfache Beispiele für die Verwendung des Systemaufrufbefehls „lseek“ aufgeführt, um Inhalte oder Daten von jeder gewünschten Position aus zu überprüfen oder anzuzeigen.

Vulkan für Linux-Benutzer
Mit jeder neuen Grafikkartengeneration stoßen Spieleentwickler an die Grenzen der grafischen Wiedergabetreue und kommen dem Fotorealismus einen Schrit...
OpenTTD vs. Simutrans
Das Erstellen einer eigenen Transportsimulation kann Spaß machen, entspannend und äußerst verlockend sein. Deshalb sollten Sie so viele Spiele wie mög...
OpenTTD-Tutorial
OpenTTD ist eines der beliebtesten Wirtschaftssimulationsspiele auf dem Markt. In diesem Spiel musst du ein wunderbares Transportunternehmen aufbauen....