【发布时间】:2016-08-18 07:05:56
【问题描述】:
我正在尝试一些方法来测量我机器上的 TLB 大小。我不知何故需要确保 CPU 不会缓存我用来测量每页平均访问时间的数组元素。所以我在我拥有的循环中尝试了这段代码,使用here的答案:
FILE *fp;
fp = fopen("/proc/sys/vm/drop_caches", "w");
fprintf(fp, "3");
fclose(fp);
但是,我收到了 Segmentation Fault (core dumped) 错误。我不知道为什么会发生这种情况。我对 C 不是很好,任何帮助都将不胜感激。谢谢。
【问题讨论】:
-
在调用
fopen()时,始终检查 (!=NULL) 以确保操作成功。最有可能的是,程序必须从root(管理员)模式运行,否则打开写入失败。