C言語のファイル書き込み操作でディスクキャッシュを無効化する方法

ALL
スポンサーリンク

C言語でのファイル書き込み操作でディスクキャッシュを無効化する方法です。

C標準ライブラリレベルで無効化

setvbuf( ファイルポインタ , NULL , _IONBF , BUFSIZ );

OSレベルで無効化
open関数でファイル状態フラグに O_DIRECT を指定する

またLinuxコマンドですが、HDDレベルで無効化する場合は、次のコマンドがあります。

hdparm -W0 デバイス

参考

Man page of SETBUF
FIO12-C. setbuf() ではなく setvbuf() を使用する

Linuxキーワード – ダイレクトI/O とは:ITpro
Man page of OPEN

Man page of HDPARM
[Linux] ライトキャッシュの設定変更 : Edo::World::Blog

コメント