View Full Version : Le Pipe
Ciao raga..
sto programmando in C usando le Pipe. Non mi è chiara una cosa, cioè: dopo aver creato due processi padre e figlio, se creo una pipe e chiudo uno dei due file descriptor (es.: fd[0]) all'interno di uno dei due processi, mi chiuderà anche l' fd[0] nell'altro processo?
Ciao raga..
sto programmando in C usando le Pipe. Non mi è chiara una cosa, cioè: dopo aver creato due processi padre e figlio, se creo una pipe e chiudo uno dei due file descriptor (es.: fd[0]) all'interno di uno dei due processi, mi chiuderà anche l' fd[0] nell'altro processo?
No! Non uso le pipe da un po', cmq funziona cosi': quando crei una pipe e successivamente fai la fork(), nel figlio i due file descriptors saranno duplicati. Se ad esempio vuoi usare la pipe come canale di comunicazione unidirezionale (per es. dal padre al figlio), nel padre chiuerai il fd in lettura, cioe' fd[0] (senza conseguenze sul fd[0] del figlio), mentre nel figlio chiuderai il fd in scrittura, cioe' fd[1] (senza conseguenze sul fd[1] del padre). Ovviamente la pipe la devi creare nel processo padre prima della fork, senno' non c'e' la duplicazione dei file descriptors.
Ciao,
Gica
Risposta esauriente.
Ti ringrazio molto.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.