問題タブ [sigpipe]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - パイプに書き込もうとする前に壊れたパイプをチェックしますか?
パイプに書き込み/読み取りを試みる前に、パイプが壊れているかどうかを確認することは可能ですか?
while
親から複数の子に通信するパイプに書き込むためにループを利用しています。ループの過程で、いくつかの子が閉じます。ループが発生して再度書き込みを試みると、パイプが壊れているため SIGPIPE によって強制終了されるため、プログラムがシャットダウンします。パイプが壊れていることはわかっているので、子供たちにパイプを閉じて終了するようにプログラムしました(必要です)。私はまだループを終了して、プログラムを続行したいと考えています。パイプが壊れているかどうかをチェックし、壊れている場合はスキップして (エラー出力なしで)、プログラムを続行します (他の子にはまだ書き込む必要があります)。
それで、それは可能ですか?cの例は素晴らしいでしょう。
これが私が求めていることの簡単な疑似コード表現です:
私の質問の文脈は異なりますが、この質問は私の以前の投稿に関連しています。そこで実際のプログラムのコードを確認できます。
python - python3: シグナル ライブラリに SIGPIPE がありません
以前に次の宣言を先頭に使用したプログラムがあります。
このプログラムは長時間実行される IRC 接続を処理するため、これは壊れたソケットに書き込もうとしたときに発生する壊滅的なエラーを防ぐために必要だったと思います。
ただし、今コードを再確認しており、環境が少し変更されています。Python 3.4 をインストールしましたが、スクリプトは SIGPIPE をインポートできないと不平を言います。
確かに、シグナル クラスを見ると、SIGPIPE メンバーがなくなっていることがわかりました。
どうすればコードを修正できますか?