C-Programmierung

So verwenden Sie Open System Call in C

So verwenden Sie Open System Call in C

Die Systemaufrufe werden in den Linux-Distributionen verwendet, um eine Tür innerhalb des Linux-Betriebssystems und der Programme bereitzustellen. Das Linux-Betriebssystem verwendet die Glibc-Bibliothek, um darin Systemaufrufe zu unterstützen, während die Sprache C verwendet wird. Es gibt noch viel mehr Möglichkeiten, Systemaufrufe zu verwenden. In diesem Artikelleitfaden besprechen wir den offenen Systemaufruf im Linux-System. Der Systemaufruf „Öffnen“ wurde verwendet, um die im Pfad angegebene Datei schnell zu öffnen. Es informiert uns über den Dateideskriptor einer vom Benutzer erstellten Datei. Wir verwenden Ubuntu 20.04, um einen praktischen „Offenen“ Systemaufruf zu erhalten.

Bibliotheken installieren

Die Sprache C erfordert die Installation einiger zusätzlicher Bibliothekspakete als Voraussetzung. Zunächst müssen Sie das Paket manpages-dev installieren, um die Informationen zu Systemaufrufen zu überprüfen. Öffnen Sie das Befehlszeilenterminal im Aktivitätsbereich und führen Sie die folgende Anweisung aus, um Hilfeseiten zu installieren install.

$ sudo apt install manpages-dev

Die Ausgabe für den Abschluss der Installation ist unten angegeben.

Jetzt werden wir mit dem Befehl „man“ wie unten nach dem offenen Systemaufruf suchen.

$ Mann 2 offen

Die Ausgabe-Manpage für den Systemaufruf „Open“ wurde unten gezeigt. Sie können die zusätzlichen Informationen dazu sehen. Drücken Sie die Taste „q“, um es zu verlassen.

Die obige Syntax zeigt die ersten drei Zeilen der notwendigen Bibliotheken, die für Systemaufrufe hinzugefügt werden müssen. Für den offenen Systemaufruf stehen drei Syntaxen zur Verfügung. Die erste Syntax zeigt den „Pfadnamen“, der der Name einer zu öffnenden Datei ist. Der zweite Parameter, „flags“, zeigt den Modus einer Datei an, z.G., lesen oder schreiben. Die zweite Syntax kann verwendet werden, wenn die Datei nicht existiert. Der Parametermodus wird verwendet, um die Berechtigungen für die Datei anzuzeigen.

Jetzt ist es an der Zeit, den GCC-Compiler zum Debuggen von C-Code im Ubuntu 20 zu installieren install.04 Linux-Distribution. Führen Sie dazu die folgende Anweisung in der Shell aus.

$ sudo apt install gcc

Sie müssen auf "Y" tippen, um mit der Installation des GCC-Compilers fortzufahren, andernfalls klicken Sie auf die Schaltfläche "n", um die Installation zu schließen. Drücken Sie also die Taste "y" und drücken Sie die Eingabetaste, um fortzufahren.

Die Ausgabe für die Vervollständigung wird unten angezeigt.

Beispiel 01

Schauen wir uns das ganz einfache Beispiel eines „Offenen“ Systemaufrufs an. Öffnen Sie zunächst die Befehlsshell und erstellen Sie eine neue Textdatei „test“.txt“ mit dem einfachen Touch-Befehl wie folgt:

$ Berührungstest.TXT

Fügen Sie manuell einige Daten hinzu. Sie können die Daten in einer Datei mit dem folgenden cat-Befehl anzeigen.

$ Katzentest.TXT

Erstellen wir nun eine neue C-Datei mit einem Nano-Befehl in der Shell, wie unten gezeigt.

$ nano neu.c

Die folgende GNU-Nano-Datei wird geöffnet. Sie müssen den folgenden C-Sprachcode eingeben. Sie sehen, wir haben die notwendigen Bibliothekspakete hinzugefügt, damit der C-Code ordnungsgemäß ausgeführt wird. Danach haben wir die Hauptfunktion definiert, um an einem Open-Systemaufruf zu arbeiten. Wir haben zwei ganzzahlige Variablen deklariert. Die Variable „n“ wird verwendet, um Pufferwerte zu zählen, und die Variable „fd“ wird für den Dateideskriptor verwendet. Wir haben das Puffer-Array des Zeichentyps als „buf“ mit der Größe 50 . deklariert. Der offene Systemaufruf wurde verwendet, um den Inhalt aus der Datei „test“ zu lesen.txt“ und geben Sie sie an den Dateideskriptor zurück. Das „O_RDONLY“ wurde zum Lesen verwendet. Die nächste Zeile zeigt den Systemaufruf read, um die 10 Bytes aus dem Puffer zu sammeln und in die ganze Zahl n . zurückzugeben. Außerdem wurde der Schreibbefehl verwendet, um den Inhalt oder die Pufferdaten in den Dateideskriptor zu schreiben, der in unserem Fall der Ausgabebildschirm ist. Speichern Sie diese Datei mit Strg+S und schließen Sie sie mit dem Befehl Strg+X.

#einschließen
#einschließen
#einschließen
#einschließen
int main()

int n, fd;
char-buf[50];
fd=open(“test.txt“, O_RDONLY);
n = lesen (fd, buf, 10);
write(1, buf, 10);

Lassen Sie uns zuerst den C-Code für einen offenen Systemaufruf mit dem folgenden gcc-Befehl kompilieren.

$ gcc neu.c

Jetzt ist es an der Zeit, die Ausgabe für den C-Code für einen offenen Systemaufruf zu überprüfen. Lassen Sie uns das folgende verwenden a.out-Befehl in der Shell. Die Ausgabe zeigt die 10 Bytes aus dem Inhalt einer Datei „test“.TXT".

$ ./ein.aus

Nehmen wir ein weiteres Beispiel, um den Inhalt einer Datei mit einem Open-Systemaufruf in eine andere Datei zu schreiben. So erstellen Sie eine neue C-Datei mit dem nano-Befehl wie unten.

$ nano neu.c

Also nimm den gleichen Code mit einer kleinen Änderung darin. Wir haben einen weiteren Dateideskriptor im Code als „fd1“ definiert. Der gesamte Code ist bis auf eine zusätzliche Zeile gleich. Die vorletzte Zeile des Codes hat den offenen Systemaufruf verwendet, um eine neue Datei namens "target" mit O_CREAT und dem Modus schreibgeschützt als O_WRONLY . zu erstellen. 0642 zeigt die dieser Datei zugewiesenen Berechtigungen an. Und die Datei wurde an einen neuen Dateideskriptor zurückgegeben. In der nächsten Zeile wurde ein Befehl zum Schreiben der Inhaltsbytes in den Puffer gemäß seinem Dateideskriptor angezeigt. Speichern Sie die Datei und schließen Sie sie.

Führen Sie den gcc-Kompilierungsbefehl aus, um die C-Sprachdatei zu debuggen.

$ gcc neu.c

Um die Ausgabe von C-Code anzuzeigen, versuchen Sie es mit a.Anleitung in der Shell wie folgt aus. Es erfolgt keine Ausgabe, da die Ausgabe in die neu erstellte Datei „target“ umgeleitet wurde.

$ ./ein.aus

Lassen Sie uns die Daten eines Dateiziels mit dem Befehl cat überprüfen. Die Ausgabe zeigt, dass die Datei 20 Byte enthält.

$ Katzenziel

Fazit

Im obigen Tutorial haben wir Ihnen erklärt, wie Sie einen offenen Systemaufruf in der Sprache C verwenden, indem Sie den gcc-Compiler verwenden. Mit Hilfe von verschiedenen Beispielen, die in diesem Leitfaden erläutert werden, führt Sie Ihr gewünschtes Programm zu implementieren.

Beste Spiele zum Spielen mit Handtracking
Oculus Quest hat kürzlich die großartige Idee des Hand-Trackings ohne Controller vorgestellt. Mit einer ständig steigenden Anzahl von Spielen und Akti...
So zeigen Sie OSD-Overlay in Vollbild-Linux-Apps und -Spielen an
Das Spielen von Spielen im Vollbildmodus oder die Verwendung von Apps im ablenkungsfreien Vollbildmodus kann Sie von relevanten Systeminformationen ab...
Top 5 Karten zur Spielaufnahme
Wir alle haben Streaming-Gameplays auf YouTube gesehen und geliebt. PewDiePie, Jakesepticye und Markiplier sind nur einige der Top-Gamer, die Millione...