Was ist Fork -System -Aufruf in C ++?

Was ist Fork -System -Aufruf in C ++?
Der Gabel() Ist ein Systemaufruf, die Kinderprozesse mit Hilfe des übergeordneten Prozesss zu erstellen. Wenn Gabel() Wird verwendet, wird ein neuer Kinderprozess gebildet, der unabhängig vom übergeordneten Prozess ist und eine eigene Speicher- und Ressourcenzuweisung besitzt.

In C ++ die Gabel() Das System Call doppelt den übergeordneten Prozess, um einen neuen Kinderprozess zu erstellen. Es wird verwendet, um einen untergeordneten Knoten zu erstellen, der eine perfekte Nachbildung des übergeordneten Knotens ist, das mit allen Attributen, Dateisystemdeskriptoren und Speicherorten komplett ist. Es ist nützlich in Szenarien, wenn ein Benutzer eine Instanz eines Programms erstellen möchte, das bereits auf dem System ausgeführt wird, oder er/sie möchte ein neues Programm starten.

Erklärung der Gabel () in C++

Der "Gabel ()" Funktion, die von UNIX/Linux -Betriebssystemen stammt „Unistd.H" Header-Datei.

#enthalten
pid_t fork ();

Rückgabewerte in der Fork ()

Der Gabel() Funktion gibt zwei Werte 0 und -1 zurück.

  • Es kann den Wert des untergeordneten Prozessrückgabewerts als 0 liefern, während der übergeordnete Prozess nach erfolgreicher Fertigstellung die Prozess -Prozess -ID des Kinderprozesses angibt.
  • Es Gibt einen Wert -1 -Wert zurück Wenn der untergeordnete Prozess nicht erstellt wird, generiert er automatisch einen Fehler.

Bedeutung von gabel () in c++

  • Durch die Nutzung Gabel (), Entwickler führen gleichzeitig eine parallele Verarbeitung durch, indem sie mehrere Prozesse erstellen.
  • Ermöglicht dem Prozess, einen Klon von sich selbst zu erstellen, der als Kinderprozess bezeichnet wird.
  • Es ermöglicht uns, komplexe Programme mit Sicherheit und besserer Fehlertoleranz zu erstellen.
  • Die Eltern- und Kinderprozesse laufen gleichzeitig.
  • Wird für Multitasking -Anwendungen verwendet.
  • Hilft zwei verschiedenen unabhängigen Prozessen, miteinander zu kommunizieren.

Ein einfaches Beispiel für Fork () in C++

Hier ist ein Beispiel dafür, wie C ++ verwendet wird Gabel () erfolgreich funktionieren:

#enthalten
#enthalten
Verwenden von Namespace STD;
int main ()

PID_T Child_id = fork ();
if (mind_id == -1)
Perror ("Gabel");
exit (exit_failure);

sonst if (mind_id> 0)
Cout << "Message from Parent process My child has process ID: " << child_id << endl;

anders
Cout << "Message from Child Process: " << child_id ;

Rückkehr 0;

Im obigen Beispiel die Gabel() Die Methode reagiert in beiden Prozessen ohne oder Null -Argumente. Die Prozess -Prozess -ID eines untergeordneten Prozesses ist die übergeordnete Prozesse, und der Kinderprozess selbst kehrt 0 zurück. Der Elternteil gibt -1 zurück, wenn nicht funktioniert.

Ausgang

Abschluss

Insgesamt die Gabel() Die Systemfunktion ist eine starke Funktion, mit der C ++ - Programmierer zahlreiche Prozesse generieren und steuern können. Der Systemanruf Gabel() Erhöht die Leistung komplexer Programme und ermöglicht es, Multi -Prozesse durchzuführen. Es nimmt keine Parameter und gibt mit entsprechenden Prozessen ganzzahlige Werte zurück.