C-Programmierung

So verwenden Sie den Write-Systemaufruf in C

So verwenden Sie den Write-Systemaufruf in C

Der Systemaufruf dient als primäres Gateway zwischen Programmen und dem Linux-Betriebssystemkernel. Obwohl Sie während Ihrer gesamten C-Programmierkarriere mit ziemlicher Sicherheit einen Systemaufruf benötigen würden, werden das Glibc-Repository oder andere Standardbibliotheken, die in beliebten Linux-Distributionen zu finden sind, für die überwiegende Mehrheit Ihrer Anforderungen. In diesem Handbuch werden wir ein Konzept über den Write System-Aufruf in der Sprache C erstellen.

Syntax:

#einschließen
ssize_t write(int fd, const void *buf, size_t count);

In dieser obigen Syntax zeigt die erste Zeile die Bibliothek für Systemaufrufe. In der zweiten Zeile steht fd für einen Dateideskriptor, bei dem es sich tatsächlich um eine Zahl handelt, die die geöffnete Datei eines Prozesses angibt. Das Schlüsselwort *buf steht für Puffer. Dies enthält alle Daten darin. Als nächstes zählt. Es ist die Anzahl der Bytes, die aus dem Puffer in einen Dateideskriptor geschrieben werden sollen.

Installationsvoraussetzungen:

Um einen beliebigen C-Sprachcode auszuführen, müssen Sie zuerst einige Pakete in der Linux-Distribution installieren. Wenn Sie weitere Informationen zum Systemaufruf write anzeigen möchten, müssen Sie dazu das Paket manpages-dev installieren. So öffnen Sie das Terminal mit der Tastenkombination Strg+Alt+T. Schreiben Sie nach dem Öffnen den folgenden apt install-Befehl gefolgt vom manpages-dev-Schlüsselwort, um manpages zu installieren install.

$ sudo apt install manpages-dev

Die Installation der Manpages wird einige Zeit in Anspruch nehmen. Warten Sie, bis es abgeschlossen ist.

Nach der Installation können Sie die zusätzlichen Informationen zum Systemaufruf „write“ über den unten stehenden man-Befehl in der Shell einsehen.

$ Mann 2 schreiben

Die Ausgabe-Manpage für den Befehl „write“ ist unten aufgeführt. Sie können die Informationen dazu lesen. Drücken Sie q, um das Handbuch zu verlassen.

Jetzt ist es an der Zeit, das Paket „Gcc“ in Ihrem Linux-System zu installieren, um in der Sprache C zu arbeiten. Öffnen Sie dazu die Shell und schreiben Sie den folgenden apt install-Befehl gefolgt von dem Schlüsselwort „gcc“.

$ sudo apt install gcc

Während der Installation werden Sie möglicherweise aufgefordert, diese Installationsaktion zu bestätigen, indem Sie „y“ drücken, um fortzufahren und „n“, um sie zu stoppen. Tippen Sie also auf die Taste "y" und drücken Sie die Eingabetaste.

Es wird innerhalb weniger Minuten in Ihrem System installiert und die letzten Ausgabezeilen sehen aus wie im folgenden Schnappschuss.

Beispiele:

Sehen wir uns einige Beispiele für einen Systemaufruf „write“ in unserer Linux-Distribution an. Öffnen Sie daher die Befehlszeilen-Shell und erstellen Sie darin eine neue C-Datei mit der Punkterweiterung „c“. Sie müssen den folgenden Nano-Befehl verwenden, um ihn schnell zu erstellen und zu öffnen. Wir haben ihm einen Namen gegeben als „neu“.c”.

$ nano neu.c

Das folgende Fenster wird geöffnet. Jetzt müssen Sie den angehängten Code in diese Datei schreiben. In diesem Code haben wir ein unistd.h Bibliothek zuerst. Dann haben wir die main-Funktion erstellt, und innerhalb dieser Funktion haben wir einen „write“-Systemaufruf erstellt. In diesem Systemaufruf ist der allererste Parameter der Dateideskriptor. In diesem Fall stellt die ganze Zahl 1 den Bildschirm des Ausgabegeräts dar und ist fest. Unsere Ausgabe wird also auf dem Bildschirm angezeigt. Der zweite Parameter zeigt die Pufferdaten. Du kannst alles hinzufügen. Und der letzte Parameter zeigt die Zählnummer für die im Pufferparameter angegebenen Daten. Da wir 5 als Zählnummer erwähnt haben, werden nur die ersten 5 Bytes der Pufferdaten angezeigt und die verbleibenden Bytes ignoriert. Speichern Sie diesen Code mit der Tastenkombination Strg+S und verlassen Sie diese Datei mit dem Befehl Strg+X.

#einschließen
Int main()
Schreiben (1, "Aqsa Yasin", 5);

Versuchen Sie nun im Terminal den folgenden gcc-Befehl, um diesen neu erstellten Code mit einem Dateinamen zu kompilieren.

$ gcc neu.c

Schauen wir uns diesen Code an, indem wir den Standardwert a . verwenden.out-Datei zur Laufzeit erstellt run. Also, versuche es unten a.out-Befehl, um die Ausgabe des Systemaufrufs „write“ zu überprüfen. Wir müssen es mit „./“, um die Datei aus dem aktuellen Verzeichnis auszuwählen.

$ ./ein.aus

Die Ausgabe, die Sie sehen können, hat wegen der Zählnummer 5 nur das Wort "Aqsa" angezeigt.

Lass uns unseren Code ein wenig ändern. Wir haben die Zählnummer auf 11 geändert, da wir insgesamt 11 Bytes in unseren Pufferdaten „Aqsa Yasin“ haben. Diesmal zeigt die Ausgabe also die gesamten Bytes der String-Daten „Aqsa Yasin“ an. Speichern Sie diese Datei mit Strg+S und beenden Sie sie mit der Tastenkombination Strg+X.

Lassen Sie uns den aktualisierten Code mit dem neu installierten gcc-Compiler für die Linux-Distribution kompilieren. Versuchen Sie den gleichen gcc-Befehl zusammen mit dem Namen einer Datei als "neu".c”.

$ gcc neu.c

Zeigen Sie nun die Ausgabe desselben Codes mit dem vorherigen „a.out” Befehl wie unten. Die Ausgabe zeigt den vollständigen String „Aqsa Yasin“ des Puffers.

$ ./ein.aus

Sehen wir uns an, wie der Code funktioniert, wenn wir die Zählnummer größer nehmen als die Gesamtzahl der Bytes, die die Pufferdaten enthalten. Also haben wir die Zählung als 30 . verwendet. Speichern und schließen Sie die Datei.

Kompilieren Sie dieselbe aktualisierte Datei mit dem gcc-Befehl wie unten.

$ gcc neu.c

Führen Sie nun die Datei mit dem a . aus.out-Befehl, und die Ausgabe zeigt die Pufferdaten sowie einige Müllwerte an, wie in der Snapshot-Ausgabe unten angezeigt.$ ./ein.aus

Sie können auch die Gesamtzahl der in die Datei geschriebenen Bytes überprüfen, indem Sie den folgenden Code in derselben Datei verwenden.

Kompilieren Sie den Code mit der gcc-Anweisung.

$ gcc neu.c

Die Ausgabe zeigt die Gesamtzahl der Bytes, einschließlich Pufferdaten und Zeilenumbruch, mit dem a.Befehl aus.

$ ./ein.aus

Fazit:

In diesem Tutorial haben wir das Konzept ausgearbeitet, um den Systemaufruf „Write“ in C . zu verwenden. Probieren Sie alle Beispiele aus, um die Idee des Systemaufrufs „write“ mit diesem Artikel zu verstehen.

Battle for Wesnoth-Tutorial
The Battle for Wesnoth ist eines der beliebtesten Open-Source-Strategiespiele, die Sie derzeit spielen können. Dieses Spiel befindet sich nicht nur se...
0 A.D. Lernprogramm
Von den vielen Strategiespielen da draußen, 0 A.D. schafft es, sich trotz Open Source als umfassender Titel und sehr tiefgehendes, taktisches Spiel ab...
Unity3D-Tutorial
Einführung in Unity 3D Unity 3D ist eine leistungsstarke Engine für die Spieleentwicklung. Es ist plattformübergreifend, das heißt, Sie können Spiele ...