MKFIFO C -Funktion

MKFIFO C -Funktion
„Eine benutzerdefinierte FIFO -Datei mit dem Namen Dateinamen wird von der MKFIFO -Funktion erstellt. Eine Datei, die sich wie eine Pfeife verhält. Zum Schreiben eröffnet eine Operation das FIFO und zum Lesen eine andere. Um ein benanntes Rohr zu öffnen, können wir die Bibliotheksfunktion „Mkfifo ()“ verwenden. Der Pfadname des FIFO und der FIFO -Modus sind die beiden Parameter, die die Funktion „mkfifo ()“ akzeptiert. Die Berechtigungen der Datei werden unter Verwendung des Modusparameters festgelegt. Weitere Informationen finden Sie unter Zuweisen von Dateiberechtigungen. Der typische Rückgabewert von MKFIFO beträgt 0, was auf den Erfolg hinweist. In diesem Leitfaden erläutern wir dieses Konzept im Detail und untersuchen ein Beispiel hier, in dem wir diese Funktion „mkfifo ()“ verwenden und in eine Datei schreiben und in einer anderen Datei lesen werden.”

Syntax
int mkfifo (const char *pathname, modus_t modus);

Beispiel
Wir werden dieses Beispiel auf Ubuntu 20 ausführen.04. Zuerst installieren wir den GCC -Compiler und öffnen dann den Texteditor von Ubuntu 20.04 und geben Sie einen Code ein. Wir erstellen hier zwei verschiedene Dateien und lesen/schreiben dann Daten mit der Funktion „mkfifo ()“ in der C -Programmierung in diese Dateien. Zum Erstellen eines C -Code müssen wir die Header -Dateien einstellen. Das „Stdio. H ”Header -Datei ist hier, die Standardeingangs-/Ausgabe, die die Eingangs-/Ausgabeinformationen enthält. Wir haben eine String. H ”Header -Datei, und diese Header -Datei wird hier für die String -Funktionen verwendet. Dann haben wir die „Unistd. H ”Header -Datei, die zum Zugriff auf API verwendet wird. Das „fcntl. H ”wird für die Dateisteuerung und für„ SYS/STAT verwendet.H ”umfasst Bausteine, mit denen die Eigenschaften einer Datei erleichtert werden können.

Außerdem schließen wir die „Systeme/Typen an.H ”Header -Datei. Wir verwenden die Funktion „main ()“ nach diesen Header -Dateien, und diese Funktion deklariert den Datentyp als „int“. Darunter erklären wir die Ganzzahl "int" und nennen es "fd". Danach deklarieren und initialisieren wir den „Char“ mit dem Namen „MyFifo“ und initialisieren sie mit „/TMP/FIFO“. Jetzt haben wir die Funktion „mkfifo ()“, bei der wir zwei Parameter übergeben. Der erste Parameter ist "myfifo", und der zweite Parameter ist "0666" hier. Der erste Parameter ist der Pfadname und der zweite der Modus.

Dann deklarieren wir zwei Arrays des Namens "arr1 []" und "arr2 []" der Größe "80". Wir verwenden die Schleife "while ()" hier und setzen "1" hinein. In dieser Schleife haben wir unterschiedliche Aussagen. Wir verwenden das „Open ()“ zum Lesen oder Schreiben in die Datei. Wir setzen den Pfad der Datei als erster Parameter ein und verwenden das Flag hier als zweiter Parameter, der „o_wronly“ ist. Dieses Flag „O_Wronly“ wird hier verwendet, was bedeutet, dass wir diese Datei nur zum Schreiben öffnen. Die Funktion „fGets ()“ ist hier zum Lesen der Zeichen hier.

Dann haben wir die Funktion „write ()“, die zum Schreiben von Daten aus dem vom Benutzer deklarierten Puffer verwendet wird und diese Datei anschließend mit der Funktion „Close ()“ verwendet wird. Danach haben wir wieder die Funktion „open ()“, aber diesmal verwenden wir das Flag „0_RDonly“, was bedeutet. Wir haben auch das „Read ()“, das nur zum Lesen der Daten verwendet wird, die zuvor in diese Datei geschrieben wurden. Anschließend verwenden wir das "printf", um die Daten auf dem Ausgangsbildschirm zu rendern und diese Datei erneut zu schließen, indem wir die Funktion „CLEY ()“ verwenden. Wir müssen die Datei schließen, die wir geöffnet haben. Hier schließen wir die Klammer der while -Loop und platzieren die Anweisung „Return 0“ darunter.

Wir erstellen hier den zweiten C -Code, indem wir einige Codezeilen einstellen. Wir verwenden dieselben Header -Dateien in diesem Code, die wir im obigen Code verwendet haben. Dann haben wir die "main ()" -Funktion und in diesem Bereich erklären wir das "int" als "fd1" und "char" als "myfifo" als "myfifo". Das „mkfifo ()“ wird hier ebenso genauso verwendet, wie wir es im obigen Code verwendet haben. Hier haben wir zwei "Char" -Arrays des Namens "Str1" und "str2" und zuweisen die Größe als "80". Die Funktion „Open ()“ wird verwendet, und das Flag „0_RDonly“ wird verwendet, um anzuzeigen, dass die Datei diesmal nur für den schreibgeschützten Zugriff geöffnet ist. Wir haben eine Funktion namens „Read ()“, die ausschließlich zum Lesen von Daten verwendet wird.

Anschließend rendern wir die Daten auf dem Ausgangsbildschirm mit "printf" und schließen diese Datei mit der Funktion "close ()". Der Pfad der Datei ist der erste Parameter, und der zweite Parameter ist das Flag, das in diesem Fall „o_wronly“ lautet.Wir öffnen diese Datei, um in diesem Fall nur mit dem Flag „O_wronly“ zu schreiben. Hier können die Zeichen mit der Funktion „fGets ()“ gelesen werden. Die Funktion „write ()“ wird verwendet, um Daten aus dem Puffer zu schreiben, den der Benutzer deklariert hat, bevor sie die Funktion „Close ()“ verwendet, um die Datei zu schließen.

Jetzt erhalten wir die Ausgabe, indem wir zwei Terminals gleichzeitig eröffnen und den Befehl in beiden Terminals gleichzeitig ausführen. Zunächst kompilieren wir beide Dateien auf separaten Terminals. Am ersten Terminal führen wir den unten angegebenen Befehl aus und wechseln dann zum zweiten Terminal.

Am zweiten Terminal setzen wir diesen Befehl zum Kompilieren der zweiten C -Codedatei ein. Nach erfolgreicher Zusammenstellung beider Befehle an verschiedenen Terminals werden wir beide Codes ausführen.

Für die Ausführung setzen wir den angegebenen Befehl in das erste Terminal; Hier wird nichts angezeigt.

Jetzt müssen wir diesen Code im zweiten Terminal ausführen, indem wir diesen Befehl schreiben, der hier angezeigt wird. Auch hier wird nichts angezeigt.

Schreiben Sie am ersten Terminal "Hallo", drücken Sie die Eingabetaste und öffnen Sie das zweite Terminal.

Dieses „Hallo“ wird auch hier im zweiten Terminal angezeigt, das wir am ersten Terminal geschrieben haben.

Hier sehen Sie die Ausgänge beider Dateien in den Bildern, die unten angegeben sind.

Abschluss

Wir präsentieren diese Anleitung, um Ihnen zu zeigen, wie die Funktion „mkfifo ()“ in der C -Programmierung funktioniert. Wir haben diese Funktion „mkfifo ()“ hier ausführlich erklärt und hier auch ein Beispiel demonstriert, in dem wir diese Funktion „mkfifo ()“ verwendet haben. Wir haben auch die Ausgabe hier bereitgestellt, sodass Sie leicht sehen werden, wie Sie diese Funktion „mkfifo ()“ in C verwenden können. Wir hoffen, dass dieser Leitfaden Ihr Wissen über die Funktionen der C -Programmierung verbessern wird.