PDA

View Full Version : [C] Uso delle pipe: un processo padre e più processi figli


Michael Jennings
11-07-2009, 15:23
Salve,
sto facendo programmazione di sistema in Linux per esercitarmi in vista del prossimo esame universitario.
Leggendo gli appunti del prof riguardo l'uso delle pipe tutto è filato liscio, fino a che non è arrivato un problema in cui la comunicazione deve avvenire tra un padre e due figli.
Normalmente, nella comunicazione tra due processi, si crea una pipe e a seconda della direzione (genitore/figlio o viceversa) si chiude un'estremità e si scrive o legge nell'altra.
Il problema per me è come regolare la scritura da parte di un padre verso due figli: ho utilizzato due pipe (una per genitore/figlio1 e un'altra per genitore/figlio2) ma il programma resta bloccato dopo un pò...come se i figli non riuscissero ad uscire dai cicli di lettura.
Quindi volevo sapere qualke info in più sulle pipe proprio per risolvere qst tipo di situazioni.:help:
Ringrazio in anticipo per una eventuale risposta.

Michael Jennings
11-07-2009, 15:40
Ho modificato il mio programma e adesso funziona. Il problema era che per ogni figlio non chiudevo le estremità (sia di scrittura che di lettura) della pipe creata per il fratello. Di conseguenza il ciclo while di lettura non usciva, poiché la read rimaneva sempre in attesa di qualke dato da leggere dall'estremità che non era stata chiusa.

Chiedo scusa per l'intervento inutile.

Cordialmente M.J.