Ese es mi código.Cómo tenedor() n niño procesa correctamente en 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);
}
}
}
La salida es así.
Child (1): 5676
Child (2): 4624
Child (3): 4800
Child (4): 5596
Child (5): 5580
Sin embargo, esa no es la salida esperada en mi tarea. Debería ser así. ¿Qué pasa con el código? ¿Alguien me puede ayudar?
Child (2): 4625
Child (1): 4624
Child (3): 4626
Child (4): 4627
Child (5): 4628
Gracias por su ayuda. Ahora lo probaré.
P.S. Perdón mi ingles es malo. Espero que entiendas lo que dije.
Gracias por su sugerencia. –
Sí, realmente depende del os. Probé mi programa en el servidor Linux de la escuela. Obtuve el resultado esperado. Muchas gracias. –