如何在Linux系统上以编程方式清除C ++中的文件系统内存caching?

我正在用C ++编写一个基准testing工具,我想在实验之间清除文件系统内存caching。 我知道以下控制台命令:

sync echo 3 > /proc/sys/vm/drop_caches 

我的问题是如何直接在C ++中以编程方式执行此操作?

任何帮助表示赞赏!

Solutions Collecting From Web of "如何在Linux系统上以编程方式清除C ++中的文件系统内存caching?"

只要写信给它:

 sync(); std::ofstream ofs("/proc/sys/vm/drop_caches"); ofs << "3" << std::endl; 

像这样的事情应该做的伎俩:

 int fd; char* data = "3"; sync(); fd = open("/proc/sys/vm/drop_caches", O_WRONLY); write(fd, data, sizeof(char)); close(fd);