Comment faire un fork() n enfant correctement les processus en C?

Qui est de mon 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);
    }
}

}

La sortie est comme ça.

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

Cependant ce n'est pas l'attendre à la sortie de mes devoirs.
Il devrait être comme ça. Quel est le problème avec le code? Quelqu'un peut-il m'aider?

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

Merci pour votre aide. Maintenant, je vais l'essayer.

P. S. Désolé mon anglais est mauvais. J'espère que vous pouvez comprendre ce que j'ai dit.

OriginalL'auteur Eric Tang | 2012-02-05