Aufrufen von GETPID -Funktion in C mit Beispielen

Aufrufen von GETPID -Funktion in C mit Beispielen
GetPid () ist die Funktion, mit der die Prozess -ID des Prozesses abgerufen wird, der diese Funktion aufruft. Die PID für den ersten Prozess beträgt 1, und dann wird jedem neuen Prozess eine neue ID zugewiesen. Es ist ein einfacher Ansatz, um die PID zu bekommen. Diese Funktion hilft Ihnen nur dabei, die eindeutigen Prozesse -IDs zu erhalten.

Funktionen, die zum Erhalten von IDs verwendet werden

Hier sind zwei Arten von IDs vorhanden. Einer ist die aktuelle ID der Prozess PID. Während die andere die ID des übergeordneten Prozessprozesses PPID ist. Beide Funktionen sind integrierte Funktionen, die in der Bibliothek definiert sind. Wenn der Code ohne diese Bibliothek ausgeführt wird, kann dies zu einem Fehler führen und stoppt die Ausführung.

GetPid () Funktion in c

Wenn ein Prozess gebildet und ausgeführt wird, wird ihm eine eindeutige ID zugewiesen. Dies ist die Prozess -ID. Diese Funktion hilft bei der Rückgabe der ID des derzeit genannten Prozesses.

GetPPID () -Funktion in c

Diese ID ist nützlich, um den Prozess des übergeordneten Prozesss/der übergeordneten Funktion zurückzusetzen.

Beispiel 1
Um das Beispiel von PID im Prozess in der C -Sprache zu verstehen. Sie benötigen zwei Tools: jeden Texteditor und das Linux -Terminal, auf dem Sie die Befehle ausführen sollen. Erstellen Sie eine Datei in einem beliebigen Texteditor. Wir haben einen Dateinamen -Code1 erstellt.c Wie der Code in C -Sprache geschrieben ist, sollte er mit dem gespeichert werden .c Erweiterung.

Wir haben eine einzige Bibliothek hinzugefügt. Dann startet hier das Hauptprogramm. Im Hauptprogramm nennen wir die integrierte Funktion getPid (); um die ID des aktuellen Prozesses zu holen. Und eine Variable wird eingeführt und zugewiesen. Damit der Wert der PID () -Funktion in dieser Variablen gespeichert ist.

Jetzt möchten wir den Inhalt dieser Datei im Linux -Terminal ausführen. Die Codevoraussetzung ist zuerst zusammenzustellen und dann auszuführen. Zur Zusammenstellung wird GCC verwendet. Wenn Ihrem System GCC fehlt, müssen Sie es zuerst mit dem Sudo -Befehl installieren.

Kompilieren Sie nun den geschriebenen Code. Dies kann durch die Verwendung des folgenden angehängten Befehls erreicht werden.

$ Gcc -o code1 code1.C

Während -o wird verwendet, um die Speicherdatei im Befehl zu öffnen. Dann schreiben wir nach -o den Dateinamen.

Führen Sie nach der Zusammenstellung den Befehl aus.

$ ./Code1

Das obige Bild zeigt die Prozess -ID der Funktion.

Beispiel 2
Im vorherigen Beispiel verwenden wir die PID. In diesem Beispiel werden sowohl die PID als auch die PPID verwendet. Der Quellcode für diese Funktion ist fast der gleiche wie der vorhergehende. Nur es gibt eine weitere Zugabe einer ID.

Betrachten Sie eine Datei, die zwei Variablen im Hauptprogramm enthält, die von den Prozess -IDs zugewiesen werden. Einer ist der aktuelle Prozess und der andere vom übergeordneten Prozess. Drucken Sie dann ähnlich wie beim ersten Beispiel beide IDs durch ihre Variablen.

Int pid_t = getPid ();
Int ppid_t = getppid ();

Diese beiden sind die Hauptfunktionen des gesamten Code. Nach der Erstellung von Dateien besteht der nächste Schritt nun darin, die Datei zu kompilieren und auszuführen. Kompilieren Sie mit GCC im Befehl. Führen Sie es nach der Zusammenstellung auf dem Terminal von Ubuntu aus.

$ Gcc -o code1 code1.C
$ ./Code1

Die Ausgabe zeigt, dass die Prozess -ID zuerst angezeigt wird und dann die übergeordnete Prozess -ID angezeigt wird.

Beispiel 3
Alle Prozesse werden parallel ausgeführt und ausgeführt. Die übergeordneten und die untergeordneten Prozesse führen alle verbleibenden Zeilen gemeinsam aus. Beide geben gleichzeitig Ergebnisse. Durch die Verwendung einer Gabel im C -Code, wenn diese Funktion einen Wert zurückgibt, der weniger als 0 ist, wird der Funktionsaufruf beendet.

Betrachten Sie eine neue Datei mit zwei Bibliotheken im jeweiligen Header. Hier wird eine Erkrankung verwendet, bei der wir die Anweisung „If-ELSE“ verwendet haben. Im Hauptprogramm wird angegeben, dass die Meldung, dass die ID des Prozesses fehlgeschlagen ist und nicht erhalten wird. Wenn die Situation falsch ist, wechselt der Compiler in den anderen Teil des Zustands. In diesem Teil wird die Prozess -ID erhalten, dann wird diese Prozess -ID angezeigt und eine Nachricht angezeigt, dass die Prozess -ID erhalten wird. Hier zitieren wir die IF-ELSE-Anweisung des Quellcode.

Kompilieren Sie den Code jetzt noch einmal und führen Sie ihn dann aus.

./Code2

Die Ausgabe zeigt, dass der sonst der Teil ausgeführt wurde und die Prozess -ID druckt und dann eine PID -Nachricht anzeigt.

Beispiel 4

Dies ist ein weiteres Beispiel für die Erklärung des gleichen Konzepts. Fork () -Funktion gibt zwei verschiedene Werte zurück. Bei einem Kinderprozess beträgt der Wert 0, was zurückgegeben werden soll. Gleichzeitig ist der Wert im Fall des übergeordneten Prozesss die Prozess -ID des neuen Kindes.

In diesem Beispiel wird dieselbe IF_ELSE -Bedingung verwendet. Aber hier werden zwei Bedingungen angewendet. Der Vergleich der PID, die weniger als Null ist, und der andere entspricht Null. Wenn die PID weniger als Null ist, wird eine Fehlermeldung angezeigt. Wenn die PID bei Null gleich ist, bedeutet dies ein untergeordneter Prozess, und der elende Teil zeigt, dass die PID größer als Null ist, es sich um einen übergeordneten Prozess handelt.

Kompilieren Sie jetzt und führen Sie den Code aus.

$ gcc -o code3 code3.C
$./code3

Aus der Ausgabe können wir sehen, dass der else -Teil zuerst gedruckt wird. Die Prozess -ID ist größer als 0.

Beispiel 5
Okay, dies ist das letzte Beispiel, in dem wir versucht haben, alle oben beschriebenen Codes zusammenzufassen, um die Arbeit dieser Funktion zu erklären. Wir können auch Schleifen mit den fork () -Funktionen verwenden, um die GetPid () -Funktionen zu verwenden. Wir können Schleifen verwenden, um viele Kinderprozesse zu erstellen. Hier müssen wir den Wert von 3 in der Schleife verwenden.

Auch hier müssen wir die bedingte Anweisung im Code verwenden. Die für die Schleife beginnt von der einen und iteriert bis zum 3Rd drehen.

Speichern Sie nun die Datei und führen Sie sie aus. Es gibt eine weitere einfache Methode, um den Code nur in einem einzigen Befehl zu kompilieren und auszuführen. Das ist.

$ GCC Codes5.c -o s & ./Code5

Jetzt zur Ausgabe des Codes bewegen. Die ID des übergeordneten Prozesses ist in allen untergeordneten Prozessen identisch. Dies bedeutet, dass all diese Prozesse einem Elternteil gehören. Diese Prozesse werden anschließend die andere ausgeführt, da die Schleife auf 3 begrenzt ist. Es werden nur 3 Iterationen durchgeführt.

Abschluss

Dieser Artikel enthält das Grundwissen und die Arbeit einer GetPid () -Funktion in den Linux -Befehlen. Die eindeutige ID wird jedem Prozess durch diese Funktion zugewiesen.