Salve a tutti, è la prima volta che scrivo in questo forum anche se seguo da molti anni il sito.
Avrei gentilmente bisogno, abbastanza urgentemente poichè domani ho un esame, di un aiuto su un esercizio.
Devo stabilire l'output di un programma e dire se quell'output è l'unico possibile.
La mia domanda è: il wait() aspetta che una diramazione QUALSIASI del figlio finisca oppure aspetta necessariamente figlio->figlio, non facendo fare altro al figlio->padre?
In pratica il programma stampa, nelle varie prove che ho fatto:
1 2 3 4 4 3 4
oppure (non sul mio pc, ma su quello di un amico)
1 2 3 4 3 4 4
Quello che cercavo di dire prima è se è possibile che il programma stampi
1 2 3 3 4 4 4, ovvero può il processo figlio->padre stampare il 3 prima che il processo figlio->figlio finisca?
Il programma che mi ha fatto sorgere il dubbio è il seguente:
Ringrazio già in anticipo chiunque mi risponderà!codice:#include <stdio.h> #include <unistd.h> int main() { printf ("1\n"); if (fork()==0) { printf ("2\n"); fork(); printf ("3\n"); }else wait(); printf ("4\n"); }
Ciao!