我正在尝试一些测量机器上TLB大小的方法.我不知何故需要确保CPU不会缓存我用来测量每页平均访问时间的数组元素.所以我在循环中尝试了这个代码,使用这里的答案:
FILE *fp;
fp = fopen("/proc/sys/vm/drop_caches", "w");
fprintf(fp, "3");
fclose(fp);
Run Code Online (Sandbox Code Playgroud)
但是,我收到了Segmentation Fault (core dumped)错误.我不知道为什么会发生这种情况.我对C不是很好,任何帮助都会受到赞赏.谢谢.
确保检查文件是否成功,因为您正在写入系统文件,这当然要求您以特权模式运行.
FILE *fp;
fp = fopen("/proc/sys/vm/drop_caches", "w");
if (fp == NULL) {
printf("error %d: %s\n", errno, strerror(errno));
// error handling, exit or return
}
fprintf(fp, "3");
fclose(fp);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
385 次 |
| 最近记录: |