file.flush() の関数の調査
ファイル オブジェクトの Python ドキュメントには、flush() は次のことを行わないと記載されています。データをディスクに書き込む必要があり、そのような動作にはフラッシュ() と os.fsync() の両方が必要です。これにより、flush() が正確に何を実現するのかという疑問が生じます。
ファイル書き込み時のバッファリングについて
ファイルに書き込むときは、通常、次の 2 つのレベルのバッファリングが関係します。
flush() の役割
flush() は、内部バッファからデータをコピーして内部バッファを空にします。オペレーティング システムのバッファ。これにより、ファイルにアクセスできる他のプロセスがデータを読み取ることができますが、データがディスクに永続的に保存されることは保証されません。
データの永続化のためのflush()とfsync()の組み合わせ
データがディスクに確実に書き込まれるようにするには、flush() と os.fsync() の両方を使用する必要があります。 flash() は内部バッファからオペレーティング システム バッファにデータをプッシュし、os.fsync() はオペレーティング システム バッファとストレージ デバイスを同期して、データがディスクに書き込まれることを保証します。
flush() を使用する場合とfsync()
ほとんどのシナリオでは、flush() と fsync() は必要ありません。ただし、データがすぐにディスクに書き込まれることが重要な状況 (機密情報や重要なログの処理など) では推奨されます。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3