2016-04-19 7 views
0

Linux Ubuntuでページキャッシュを消去する必要があります。ターミナル経由で行うことができるページキャッシュecho 1>/proc/sys/vm/drop_cachesを消去するコマンドがありますが、私はプログラムでページキャッシュを消去する必要があります。 drop_caches.cのこのソースコードを理解すると、つまりhttp://www2.comp.ufscar.br/lxr/source/fs/drop_caches.cは私の問題を解決するのに役立ちます。プログラムでLinuxでページキャッシュを消去する方法

+1

[MCVE] –

+2

にコードを投稿してください。重複がなくなった(削除されました)。これは今や偽装*ターゲット*なので、これはおそらく開かれるはずです。 –

答えて

0

ファイル/proc/sys/vm/drop_cachesを開いてもう1度それを閉じてもう一度閉じてください。その操作に専用のシステムコールはありません。

sync(); 
int fd = open("/proc/sys/vm/drop_caches", O_WRONLY); 
write(fd, "1", 1); 
close(fd); 

あなたが達成しようとする内容に応じて、(オプション)sync()に先行するいくつかのより多くのメモリを解放することができます。

+0

ありがとう@Ctxページキャッシュをクリーニングする他の方法はありますか? –

+0

@ TalhaA sysctl-interfaceがページキャッシュを明示的に消去する唯一の方法だと確信しています。 "3"を書き込んでディレクトリエントリとiノードキャッシュも消去します。 – Ctx

+0

基本的に私はLinuxで**キャッシュクリーン**のための小さなプロジェクトをしなければなりませんし、フォーク/ exec、sys呼び出し、モジュール、スレッディングのような基本レベルのLinuxプログラミングを知っています。 –

関連する問題