Questo è il mio codice.Come fork() n processi figlio correttamente in C?
#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);
}
}
}
L'uscita è così.
Child (1): 5676
Child (2): 4624
Child (3): 4800
Child (4): 5596
Child (5): 5580
Tuttavia questo non è l'uscita aspettare nel mio lavoro. Dovrebbe essere così. Cosa c'è di sbagliato nel codice? Qualcuno può aiutarmi?
Child (2): 4625
Child (1): 4624
Child (3): 4626
Child (4): 4627
Child (5): 4628
Grazie per il vostro aiuto. Ora lo proverò.
P.S. Scusa, il mio inglese non è buono. Spero tu possa capire quello che ho detto.
Grazie per il suggerimento. –
Sì, è davvero dipendente dal sistema operativo. Ho testato il mio programma nel server Linux della scuola. Ho ottenuto l'uscita prevista. Grazie mille. –