Per avere qualcosa da eseguire.

Osserva l'esempio che ti ho postato: quando viene eseguita la fork() tutto quel codice viene duplicato. Dopo la sua duplicazione, ci sono, quindi, effettivamente 2 processi in esecuzione con lo stesso identico codice. Ma c'è un ma: subito dopo la chiamata a fork() si testa la guardia dell'istruzione if. Qui avviene la discriminazione fra processo padre e processo figlio: i due prendono strade diverse e quindi eseguono (potenzialmente) codici diversi, operazioni diverse. Si ha così l'esecuzione di due processi distinti.

Il figlio (il processo che viene generato) deve pur fare qualcosa. E per sapere cosa fare deve avere del codice da eseguire. Questo codice risiede già nel processo padre. Quando, poi, viene creato il figlio, questo possiede una copia del codice del padre, ma il primo eseguirà un ramo dell'if, mentre il secondo ne eseguirà un altro.

Tutto qui.


Ciao.