私が収集できることから、ブロッキング デバイス ファイルで POSIXO_DIRECT
を使用すると、Windows で との両方をopen()
組み合わせた場合とまったく同じように機能します。これは私が正しく想定していますか?FILE_FLAG_WRITE_THROUGH
FILE_FLAG_NO_BUFFERING
CreateFile()
開ける:
O_DIRECTこのファイルに対する I/O のキャッシュ効果を最小限に抑えます。一般に、これはパフォーマンスを低下させますが、アプリケーションが独自のキャッシュを行う場合など、特別な状況では役立ちます。ファイル I/O は、ユーザー空間バッファーとの間で直接行われます。
ファイルの作成:
FILE_FLAG_WRITE_THROUGHが使用されているがFILE_FLAG_NO_BUFFERING も指定されておらず、システム キャッシュが有効になっている場合、データはシステム キャッシュに書き込まれますが、遅延なくディスクにフラッシュされます。FILE_FLAG_WRITE_THROUGHとFILE_FLAG_NO_BUFFERING の両方が指定されているため、システム キャッシュが有効になっていない場合、データは Windows システム キャッシュを経由せずにすぐにディスクにフラッシュされます。オペレーティング システムは、ハード ディスクのローカル ハードウェア キャッシュの永続メディアへのライトスルーも要求します。