テスト目的で、Linux の procfs の下にある drop_caches ファイルに書き込むことで、キャッシュされたメモリを削除できます。これはルートとしてのみ実行できます。これは組み込み Linux 上にあるため、sudo はありません。
sync; echo 3 > /proc/sys/vm/drop_caches
投稿から何かを行うことで、C ++でプログラムでファイルに書き込むことができます-> LinuxシステムでC ++でファイルシステムメモリキャッシュをプログラムでクリアする方法は?
sync();
std::ofstream ofs("/proc/sys/vm/drop_caches");
ofs << "3" << std::endl;
課題は、root 以外のユーザーとしてアプリを実行しているときにこれを行うことです。再起動すると、アクセス許可は次のようになります。
# cd /proc/sys/vm/
# ls -lrt drop_caches
-rw-r--r-- 1 root root 0 Feb 13 19:50 drop_caches
そして、root であっても、これらの権限を変更できないようです。
# chmod 777 drop_caches
chmod: drop_caches: Operation not permitted
# chown user:user drop_caches
chown: drop_caches: Operation not permitted
Linuxでこれを達成するにはどうすればよいですか? procfs ファイルのパーミッションを変更することはできますか? 必要に応じて、カーネルを完全にカスタマイズできます。ありがとう -