Ti faccio un esempio di utilita' del fork().
Ammettiamo che devi creare un client che si collega ad un server con le socket!
Non puoi mettere i cicli tutti in un processo perche' se metti un recv lui si blocca e non puoi mandare niente finquando lui non manda qualche dato, il recv si sblocca e mandi i dati tu.
Magari puoi creare una funziona che riceve i dati e li stampa, lo forki, ed il padre continua a mandare dati.
In questo modo ricv e send non si bloccano a vicenda.......... insomma dipende da cosa si vuole fare!
Comunque oltre al fork (che proprio crea un altro processo a se') ci sono anche i pthread, che alla chiusura del programma si arrestano anche loro.
Quindi dipende dalle situazioni perche' ti possono talvolta servire i fork e talvolta i pthread![]()