0

親プロセスは、mkfifo(pipe_name, S_IWUSR | S_IRUSR) を使用して各ヘルパー プロセスの名前付きパイプを正常に作成しました。

次に、ヘルパーを起動し、次の方法で各パイプを開きます。

::open(pipe_name, O_WRONLY);

ヘルパー プロセス側では、次の方法でパイプのリーダー側を開きます。

::open(pipe_name, O_RDONLY);

その後、いくつかの読み取りと書き込みが行われます。

プログラムはほとんどの場合動作しますが、たまにスタックすることがあります。そして、プロセスを ddd にアタッチすると、パイプを開くときにメイン プロセスとヘルパー プロセスの両方が停止していることがわかります。私はこの現象に何日も混乱しており、理解できません。さらに、これをデバッグする方法がわかりません: プロセスをタイムアウトさせてエラー コードを返すにはどうすればよいですか?

4

0 に答える 0