0

LinuxでCのプログラムを書いていますが、パイプファイル記述子が壊れてしまうのを(selectまたはpollを使用して)待ちたいと思います。たとえば、後続のwrite(2 )はEPIPEを返します(またはSIGPIPEが送信されます)。selectのwritefdsまたはexceptfds引数にファイル記述子を追加しても、問題は解決しません。複数のプロセスまたはスレッドを作成することでこれを解決できることは知っていますが、この質問では、単一プロセス、単一スレッドのソリューションにのみ関心があり、できれば選択ポーリングが含まれます(他のファイル記述子イベントも待機したいため)。パイプの反対側に誰がいるのかを推測することはできません。これらのプロセスがプロセスツリー内で遠く離れている場合、ソリューションは機能する必要があります。

Linuxだけでなく多くのUnixシステム間で移植可能なソリューションが好きです。

4

1 に答える 1

0

パイプの書き込み側でPOLLHUPを使用してpoll(2)を呼び出すと、Linuxではうまくいかなかったようです。

于 2011-10-08T09:49:51.703 に答える