Originariamente inviato da Ikitt
Beh se la richiesta e` di dimensione fissa basta una read bloccante classica, e in questo modo non sprecheresti nulla.
Altrimenti penso che select sia quello di cui hai bisogno.
Se non sbaglio la read e' bloccante solo se la pipe e' "aperta" in scrittura da qualcun altro (Un client...) ma non ci sono dati da leggere. Invece se nessuno l'ha aperta in scrittura, la funzione read(...) ritorna sempre 0 a chi tenta di leggere qualcosa. Ora do un'occhiata alla select(...).