Salve a tutti.
Non riesco a capire come si fa a generare (3) processi figli da uno stesso processo padre, senza far terminare ogni figlio ogni volta.
Io ho usato un ciclo for:
pid_t f[3];
for(int i=0; i<3; i++)
{
f[i] = fork();
if(f[i] == 0) { printf("Figlio di PID %d. Mio padre è %d\n", getpid(), getppid()); exit(0); }
else wait(&f[i]); //aspetta che il figlio sia creato
}
Ho capito perché devo mettere la exit(0): se non la mettessi, al primo ciclo mi si creerebbero 2 processi, al secondo 4 e al terzo 8 (e la stringa verrebbe stampata per ogni figlio, quindi 7 volte).
Ma se volessi avere un padre con 3 figli tutti in esecuzione? Per esempio per permettere a 2 processi fratelli di comunicare tra loro?
Grazie infinite!