C - Bedeutung des Wartens (NULL) beim parallelen Ausführen von fork ()
Laufen die Gabeln im folgenden Code tatsächlich parallel oder nacheinander?
Was ist die Bedeutung vonwait(NULL)
?
(Das Programm erstellt n untergeordnete Prozesse, n wird über die Befehlszeile bereitgestellt.)
int main ( int argc, char *argv[] ) {
int i, pid;
for(i = 0; i < atoi(argv[1]); i++) {
pid = fork();
if(pid < 0) {
printf("Error occured");
exit(1);
} else if (pid == 0) {
printf("Child (%d): %d\n", i + 1, getpid());
exit(0);
} else {
wait(NULL);
}
}
}