我需要在Linux Ubuntu中清理页面缓存。有一个清除页面缓存echo 1的命令> / proc / sys / vm / drop_caches可以通过终端完成,但我需要以编程方式清理页面缓存。理解drop_caches.c的源代码,即http://www2.comp.ufscar.br/lxr/source/fs/drop_caches.c,可以帮助我解决我的问题。
答案 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()
之前的(可选)可以帮助释放更多内存。