C-Programmierung

So verwenden Sie den Fsync-Systemaufruf in C

So verwenden Sie den Fsync-Systemaufruf in C

Der fsync wird verwendet, um den In-Core-Zustand einer Datei mit einem beliebigen Speichergerät zu koordinieren. Der Systemaufruf fsync() übergibt („löscht“) alle geänderten Kerninhalte von (i.e., geänderter Puffer für) den Dateideskriptor fd zu einer Disc-Maschine (oder einem anderen dauerhaften Speichergerät), wo eine solche Datei verbleibt. Es bereinigt sogar die Details der Datei. Der fsync-Systemaufruf funktioniert für eine einzelne Datei. Alle Aktualisierungen der Datei werden geleert. Wenn mehrere Aufgaben in derselben Datei bearbeitet werden, wird der fsync-Systemaufruf ausgesetzt, bevor alle Aktualisierungen auf die Disc übertragen wurden. Wenn das System die erfolgreiche Konvertierung ankündigt, wird der Anruf blockiert. Die Verwendung von fsync() garantiert nicht, dass die Aufnahme der Datei in das Dateisystem möglicherweise auch auf die Disc gelangt ist. Dazu ist jedoch ein entsprechendes fsync() auf dem Dateideskriptor des Ordners erforderlich.

Installationsvoraussetzungen:

Für den fsync-Systemaufruf müssen also einige Bibliotheken installiert sein, um daran zu arbeiten. Wenn jemand die zusätzlichen Informationen zum fsync-Befehl überprüfen möchte, muss er/sie die manpages-dev-Pakete auf seinem Linux-System installiert haben. Also werden wir sehen, wie das geht. Verwenden Sie die Tastenkombination Strg+Alt+T auf der Tastatur, um das Linux-Befehlszeilenterminal zu starten. Um nun das manpages-dev-Paket zu installieren, probieren Sie den folgenden apt install-Befehl aus, gefolgt von einem Paket namens „manpages-dev“. Der Installationsvorgang erfordert Ihr Kontokennwort, damit Linux fortfahren kann. Geben Sie also Ihr aktuelles Linux-Passwort für Ihr Konto ein und drücken Sie die Eingabetaste auf der Tastatur. Es startet schnell die Installation und Konfiguration von Manpages in Ihrem Linux-System. Lehnen Sie sich zurück, bis der Installationsvorgang abgeschlossen ist.

$ sudo apt install manpages-dev

Nach der Installation können Sie mit dem folgenden Befehl die Informationen zum fsync-System überprüfen.

$ man 2 fsync

Die Ausgabe für den Befehl man wird unten angehängt. Sie können alle Informationen dazu lesen, um das Konzept des Systemaufrufs „fsync“ im Linux-System zu verstehen. Drücken Sie die Taste „q“ auf der Tastatur, um dieses Fenster zu verlassen.

Eine weitere Voraussetzung für die Verwendung des fsync-Systemaufrufs ist der GCC-Compiler. Dies liegt daran, dass wir den Systemaufruf fsync in der Sprache C verwenden. Um C-Sprachcode auszuführen und zu kompilieren, müssen wir also ein Compiler-Paket in unserem System installiert haben. Hier haben wir also einen GCC-Compiler. Sie können es mit dem sehr einfachen Befehl sudo apt wie folgt installieren. Die Installation ist in wenigen Minuten abgeschlossen und Sie können problemlos C-Codes in Dateien schreiben write.

$ sudo apt install gcc

Beispiel:

Beginnen wir mit der Arbeit am fsync-Befehl, um ihn gut zu verstehen. Zunächst müssen Sie mit dem Nano-Editor in der Kommandozeilen-Shell eine C-Type-Datei erstellen. Versuchen Sie dazu die folgende einfache Abfrage in der Shell auszuführen.

$ nano neu.c

Nachdem die Datei erstellt und geöffnet wurde, ist es an der Zeit, etwas C-Code zu schreiben. So können Sie den untenstehenden langen Code in der Nano-Datei sehen. Die ersten 7 Zeilen enthalten Header-Dateien, die in die Editor-Datei aufgenommen werden müssen, damit der Systemaufruf „fsync“ ordnungsgemäß funktioniert. Nach diesen Header-Dateien haben wir die Hauptfunktion mit dem Integer-Rückgabetyp als „int“ definiert. Diese Funktion enthält zwei Parameter. Einer davon ist ein Integer-Typ und der andere ein Zeichentyp-Array. An der Stelle der Hauptfunktion haben wir eine Zeichenfolge vom Typ „*str“ deklariert und einen Wert vom Typ Zeichenfolge dafür definiert. Danach haben wir auch zwei Integer-Typ-Variablen deklariert, die in weiteren Zeilen als Dateideskriptoren verwendet werden. In der nächsten Zeile haben wir die Funktion Systemaufruf erstellen verwendet, um eine neue Datei namens „test“ zu erstellen.txt“ und Lese- und Schreibrechte als Offset im Parameter. Wir haben diesen Dateiinhalt an einen Dateideskriptor „fd“ zurückgegeben. Wir haben die if-Anweisung in diesem C-Code definiert. Wenn der Wert oder Indexzeiger des Dateideskriptors „-1“ ist, wird der Fehler ausgegeben, die Funktion creat() aufzurufen, um eine neue Datei zu erstellen. Der Deskriptor „fd“ kleiner als „-1“ bedeutet, dass sich der Zeiger an der Position -1 befindet.

Die Funktion exit() wird vor dem Schließen der if-Anweisung aufgerufen. Als Nächstes haben wir den Aufruf der Methode write verwendet, um den String-Wert aus dem Puffer zu sammeln und in die Datei „test“ zu schreiben.txt“ mit dem Dateideskriptor „fd“. Diese Daten wurden an die Variable „ret“ zurückgegeben. Wenn der Wert der Variablen „Ret“ kleiner als -1 ist, bedeutet dies, dass die Daten nicht in eine Datei geschrieben wurden. Sie müssen also die Schreibfunktion erneut aufrufen und die if-Anweisung verlassen. Wir haben den fsync-Systemaufruf definiert und geben ihm einen Dateideskriptor „fd“ als Parameterwert, um den Dateideskriptor mit einem Plattengerät zu synchronisieren. Beim Aufrufen der Methode "close" werden die Daten schnell auf ein Laufwerk geschrieben und der Dateideskriptor geschlossen. Danach wird die Hauptfunktion geschlossen. Speichern Sie diese Datei mit der Tastenkombination „Strg+S“ und schließen Sie die Datei „neu“.c“ mit der Tastenkombination „Strg+X“.

Nachdem Sie die Nano-Datei geschlossen haben, ist es nun an der Zeit, den oben gezeigten Code zu kompilieren. Für die Kompilierung von Code müssen wir den gcc-Compiler verwenden. Führen Sie also die folgende gcc-Abfrage aus, um die "neuen".c“-Datei.

$ gcc neu.c

Nun müssen wir diesen Code mit dem einfachen a . ausführen.out-Befehl in der Shell wie folgt. Dieser Befehl führt einfach den Code aus und gibt nichts zurück, aber die Daten wurden auf ein Laufwerk im Hintergrund des Prozesses geschrieben.

$ ./ein.aus

Überprüfen Sie die Datei, die im C-Code erstellt wurde und einen Zeichenfolgenwert enthält.

$ Katzentest.TXT

Fazit

Wir haben kurz ein sehr einfaches und lineares Beispiel für den Systemaufruf fsync besprochen, um sein Konzept zu verstehen.Ich hoffe, dass Sie jetzt den fsync-Systemaufruf unter Linux problemlos verwenden können.

Installieren Sie das neueste OpenRA-Strategiespiel auf Ubuntu Linux
OpenRA ist eine Libre/Free Real Time Strategy Game Engine, die die frühen Westwood-Spiele wie den Klassiker Command & Conquer: Red Alert Red nachbilde...
Installieren Sie den neuesten Dolphin Emulator für Gamecube & Wii unter Linux
Mit dem Dolphin Emulator können Sie Ihre ausgewählten Gamecube- und Wii-Spiele auf Linux-Personalcomputern (PC) spielen. Als frei verfügbarer Open-So...
So verwenden Sie die GameConqueror-Cheat-Engine unter Linux
Der Artikel enthält eine Anleitung zur Verwendung der GameConqueror-Cheat-Engine unter Linux. Viele Benutzer, die Spiele unter Windows spielen, verwen...