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
コメント