Ok, grazie mille per ora... La mia mail è qmatteoq@email.it... Ho provato a fare un po' di esperimenti e sto incominciando a capirci qualcosa: ho fatto questo programmino...
codice:
#include <stdio.h>
#include <unistd.h>
#include <signal.h>
main() {
int pid=0;
printf("Il PID del processo padre è %d\n",getpid());
pid=fork();
if (pid==0) {
pid=fork();
if (pid==0) printf("Sono il secondo figlio e il mio PID è %d!\n",getpid());
printf ("Sono il processo figlio e il mio PID è %d!\n",getpid());
}
if (pid!=0) {
printf ("Sono il processo padre e il mio PID è %d!\n",getpid());
}
}
Come output ottengo:
codice:
Il PID del processo padre è 17452
Sono il secondo figlio e il mio PID è 17454!
Sono il processo figlio e il mio PID è 17454!
Sono il processo figlio e il mio PID è 17453!
Sono il processo padre e il mio PID è 17453!
Sono il processo padre e il mio PID è 17452!
Lo scopo di questo programma (almeno, nelle mie intenzioni) è quello di avere un padre che generi due figli... Non capisco però perchè le frasi vengono stampate due volte, con il PID non coincidente tra l'altro... (se mancassero la terza e la quarta riga sarebbe perfetto )