0
Der Systemaufruf fork()
erstellt zwei identische Kopien des Adressraums, einen für den übergeordneten, den anderen für den untergeordneten Bereich.Ermitteln der untergeordneten Prozessgenerierung in fork()
Wenn fork mit einer if-Anweisung verwendet wird, wie oft wird der untergeordnete Prozess im folgenden Code erstellt?
fork();
pid=fork();
if(pid==0)
{
fork();
}
Fünf mal. Brauchen Sie weitere Erklärungen? – Beta
"macht zwei identische Kopien des Adressraums" - nein, tut es nicht. Es erstellt eine identische Kopie eines bereits vorhandenen Adressraums. Und bei den meisten modernen Implementierungen macht es das nicht einmal - es erstellt nur einen neuen Adressraum, der auf die gleichen Seiten wie das Original verweist, sie aber für das Kopieren beim Schreiben markiert. – twalberg