如何以编程方式清理linux中的页面缓存

时间:2016-04-19 13:37:36

标签: c++ c

我需要在Linux Ubuntu中清理页面缓存。有一个清除页面缓存echo 1的命令> / proc / sys / vm / drop_caches可以通过终端完成,但我需要以编程方式清理页面缓存。理解drop_caches.c的源代码,即http://www2.comp.ufscar.br/lxr/source/fs/drop_caches.c,可以帮助我解决我的问题。

1 个答案:

答案 0 :(得分:1)

您可能无法打开文件/proc/sys/vm/drop_caches,向其中写入1并再次关闭它。该操作没有专用的系统调用。

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

根据您尝试实现的目标,sync()之前的(可选)可以帮助释放更多内存。