ファイルディスクリプタが有効かどうかを確認するにはどうすればよいですか?可能であればfd=3
に書きます。それ以外の場合は、stdoutに書きたいと思います。私は、os.write
の呼び出しをtry-except文で折り返すことができることを知っていますが、fd=3
が書き込み可能かどうかを事前に知りたいと思います。ファイルディスクリプタが有効かどうかをチェック
答えて
os.fstat
を使用して、ファイルディスクリプタが各書き込み前に有効かどうかを判断できますが、無効なファイルディスクリプタがOSError
になるため、try/exceptでラップする必要があります。おそらくtry/exceptを使って独自のwrite関数を作成する方がよいでしょう。
def write(data, fd=3):
try:
os.write(fd, data)
except OSError:
sys.stdout.write(data)
方法(try
内 - except
ブロック)開始時に一度fd=3
にos.write
しようと程度、及びその成功に基づいて、後続のすべての動作を変更?
この方法では、すべての通話をtry
- except
に折り返す必要はありません。もちろん、問題の途中でfd=3
が有効でなくなると(たとえば、もう一方の端から閉じているパイプの場合)、これが解消されます。
私は除いている/ 'os.fstat'を呼び出して試してみて、FDにジャンクを書くの副作用を避けるために、むしろos.write''よりも、モード・ビットをチェックし、それ以外はええ、試してみましたこの問題の完璧なイディオム。 "許しなどを求めるのが良い" –
@Chris Farmiloe: 'os.fstat'は壊れたパイプを検出するでしょうか? – NPE
ええ、 "閉鎖ファイルの操作"を提起します。 "ValueError"私は –
- 1. URLが有効かどうかチェック
- 2. javascript文字列が有効かどうかをチェックする
- 3. アプリのバッテリ最適化が有効かどうかをチェック
- 4. 変数名が有効かどうかをチェックする関数
- 5. テキストボックスの値が有効かどうかをチェック
- 6. ユーザーがLaravel Passportで有効かどうかチェックする方法
- 7. JavaScriptでタイムゾーン名が有効かどうかチェック
- 8. 属性が有効なDOM属性であるかどうかをチェック
- 9. SudokuがJavaで有効かどうかをチェックする方法は?
- 10. 検証グループが有効であるかどうかをチェックするクライアント側
- 11. 変数が有効かどうか
- 12. Selenium Checkダウンロードリンクが有効かどうか
- 13. Cのマジックナンバーをチェックして有効な実行ファイルまたはシェルファイルがあるかどうかをチェック
- 14. バイト配列をチェックする方法は有効なpdfファイルかどうか
- 15. Bluetoothが有効で、mBluetoothAdapter.isMultipleAdvertisementSupported()がfalseを返すかどうかをアプリがチェックすると、BLEアプリがクラッシュする
- 16. GPSが無効かどうかをチェックする方法
- 17. 静的解析が有効な場合にテストケースでNULLチェックを行うかどうか。
- 18. リモートプロキシが有効かどうかをテストしますか?
- 19. ホットスポットが有効か無効かをプログラムでチェックする方法は?
- 20. 有効なかっこがC++であるかチェックする
- 21. クレジットカードが有効かどうかはどうすればわかりますか?
- 22. カーネルが有効なカーネルかどうかをテストする方法
- 23. ページがJavaScript - ASP.NETで有効かどうかを確認
- 24. ボタン/ウィンドウが有効かどうかを判断するwinforms C#
- 25. wifiオプションが有効かどうかを確認する方法
- 26. SSIS - URLが有効かどうかを確認する
- 27. パスが有効かどうかを判断するjavascript
- 28. 画像が有効かどうかを確認するPNGファイル
- 29. ポインタが有効かどうかを確認する方法?
- 30. SQL Server:CLRが有効かどうかを確認する方法?
と信じています。ありがとう、私は 'os.fstat'を使用します。 – cpburnz