尝试刷新缓存时出现分段错误(核心转储)错误
Segmentation fault (core dumped) error while trying to flush cache
我正在尝试一些方法来测量我机器上的 TLB 大小。我不知何故需要确保 CPU 不会缓存我用来测量每页平均访问时间的数组元素。所以我在我的循环中尝试了这段代码,使用 here 上的答案:
FILE *fp;
fp = fopen("/proc/sys/vm/drop_caches", "w");
fprintf(fp, "3");
fclose(fp);
但是,我遇到了 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);
我正在尝试一些方法来测量我机器上的 TLB 大小。我不知何故需要确保 CPU 不会缓存我用来测量每页平均访问时间的数组元素。所以我在我的循环中尝试了这段代码,使用 here 上的答案:
FILE *fp;
fp = fopen("/proc/sys/vm/drop_caches", "w");
fprintf(fp, "3");
fclose(fp);
但是,我遇到了 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);