Wie fork() n child-Prozesse richtig in C?

Dass ist mein code.

#include <stdio.h>
#include <stdlib.h>

int main ( int argc, char *argv[] )
{
    int i, pid;

for(i = 0; i < atoi(argv[1]); i++) {
    pid = fork();
    if(pid < 0) {
        printf("Error");
        exit(1);
    } else if (pid == 0) {
        printf("Child (%d): %d\n", i + 1, getpid());
        exit(0); 
    } else  {
        wait(NULL);
    }
}

}

Die Ausgabe ist so.

Child (1): 5676
Child (2): 4624
Child (3): 4800
Child (4): 5596
Child (5): 5580

Aber das ist nicht das erwarten die Ausgabe in der meine Hausaufgaben.
Sollte es so sein. Was ist falsch mit dem code? Kann mir jemand helfen?

Child (2): 4625
Child (1): 4624
Child (3): 4626
Child (4): 4627
Child (5): 4628

Danke für Eure Hilfe. Jetzt werde ich es ausprobieren.

P. S. Sorry mein Englisch ist schlecht. Ich hoffe, Sie können verstehen, was ich sagte.

InformationsquelleAutor Eric Tang | 2012-02-05
Schreibe einen Kommentar