Ich versuche das fork() Konzept zu verstehen und es gibt eine Sache, die ich nicht zu verstehen verstehe.fork() und lokale Variablen ändern?
Im folgenden Code - warum druckt das Elternteil immer noch i = 0, auch wenn Kindprozess ändert es auf 5?
Die warten (NULL) blockiert übergeordneten Prozess, bis Kind zuerst beendet.
int main(int argc, char *argv[]) {
int i = 0;
if (fork() == 0) {
i = 5;
} else {
wait(NULL);
printf("i = %d\n", i);
}
return 0;
}
Kann jemand erklären, warum meine Annahme falsch ist?
Was stellen Sie sich vor 'Gabel' tut? –