PDA

View Full Version : Le Pipe


boysna
09-06-2005, 11:14
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?

Gica78R
09-06-2005, 16:21
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

boysna
10-06-2005, 00:40
Risposta esauriente.
Ti ringrazio molto.