Originariamente inviato da Pierissimo
perchè c'è la necessità di fare una fork()?
Perché quel codice lancia ls e prepara il recupero di quello che esso scrive su stdout tramite la pipe; in effetti quel codice è incompleto, manca la parte di recupero del testo scritto da ls.
perchè controlliamo se il pid della fork è 0?
Perché se la fork restituisce 0 vuol dire che siamo nel processo figlio, se restituisce un altro valore siamo nel processo padre. Queste sono le basi della creazione dei processi sotto sistemi Unix-like, le hai mai studiate?
inoltre perchè fare il casting a pid_t di 0?
Per coerenza con il tipo di pid.