>337
さらに付け加えてみる。

TCP Socketのようなに有効なデータを取得するために必要以上に時間がかかる可能性がある場合には、
select(2)を使ってタイムアウトを設定した方が良いでしょう。
これにより無効なファイルディスクリプタにアクセスせずに済むようにもなります。

また、signal(2)によりSIGPIPEやSIGIOをキャッチするのも良い考えです。