【发布时间】:2010-01-10 06:12:11
【问题描述】:
为什么下面的代码会出现分段错误?
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *file;
file = fopen("text","r");
if (file == NULL) printf("Error READING FILE");
if (ferror(file)) printf("error reading file"); //line 9
return 0;
}
在 gdb 中进行回溯会得到:-
> #0 0x00007ffff7ad9d30 in ferror () from /lib/libc.so.6 > #1 0x00000000004005fa in main () at test.c:9【问题讨论】:
-
为什么你发现文件是
NULL后还要继续执行?