/* Scrivere un programma C in cui un processo padre genera N figli (con N parametro da linea di comando) */ #include #include main(int argc, char *argv[]){ int i, N; int pid; if (argc < 2){ printf("USO: %s N\ngenera N processi figli\n\n", argv[0]); exit(1); } N = atoi(argv[1]); /* N deve essere strettamente positivo */ if (N <= 0) { printf("USO: %s N\ngenera N processi figli\n\n", argv[0]); exit(2); } printf("padre %d genera %d figli\n", getpid(), N); for (i=0; i < N; i++){ if ((pid = fork()) < 0){ printf("Errore nella fork\n\n"); exit(3); } if (pid == 0){ /* il figlio */ sleep(5); /* azione del figlio */ printf("figlio %d del padre %d\n", getpid(), getppid()); exit(0); /* esce dal ciclo*/ } } /*padre*/ printf("padre %d ho generato %d figli\n", getpid(), N); }