親プロセスは、mkfifo(pipe_name, S_IWUSR | S_IRUSR) を使用して各ヘルパー プロセスの名前付きパイプを正常に作成しました。
次に、ヘルパーを起動し、次の方法で各パイプを開きます。
::open(pipe_name, O_WRONLY);
ヘルパー プロセス側では、次の方法でパイプのリーダー側を開きます。
::open(pipe_name, O_RDONLY);
その後、いくつかの読み取りと書き込みが行われます。
プログラムはほとんどの場合動作しますが、たまにスタックすることがあります。そして、プロセスを ddd にアタッチすると、パイプを開くときにメイン プロセスとヘルパー プロセスの両方が停止していることがわかります。私はこの現象に何日も混乱しており、理解できません。さらに、これをデバッグする方法がわかりません: プロセスをタイムアウトさせてエラー コードを返すにはどうすればよいですか?