タグ付けされた質問 「sigpipe」

10
SIGPIPEを防ぐ(または適切に処理する)方法
TCPまたはローカルUNIXソケットでの接続を受け入れ、単純なコマンドを読み取り、コマンドに応じて応答を送信する小さなサーバープログラムがあります。問題は、クライアントがときどき回答に関心を持たずに早く終了する可能性があるため、そのソケットに書き込むとSIGPIPEが発生し、サーバーがクラッシュすることです。ここでクラッシュを防ぐためのベストプラクティスは何ですか?行の反対側がまだ読んでいるかどうかを確認する方法はありますか?(select()は、ソケットが書き込み可能であると常に表示するため、ここでは機能しないようです)。または、ハンドラーでSIGPIPEをキャッチして無視する必要がありますか?
260 c  io  signals  broken-pipe  sigpipe 

9
IOError:[Errno 32]壊れたパイプ:Python
私は非常に単純なPython3スクリプトを持っています: f1 = open('a.txt', 'r') print(f1.readlines()) f2 = open('b.txt', 'r') print(f2.readlines()) f3 = open('c.txt', 'r') print(f3.readlines()) f4 = open('d.txt', 'r') print(f4.readlines()) f1.close() f2.close() f3.close() f4.close() しかし、それは常に言います: IOError: [Errno 32] Broken pipe これを修正するための複雑な方法をすべてインターネットで見ましたが、このコードを直接コピーしたので、PythonのSIGPIPEではなくコードに問題があると思います。 出力をリダイレクトしているので、上記のスクリプトの名前が「open.py」の場合、実行するコマンドは次のようになります。 open.py | othercommand
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.