为什么下面的代码给出了分段错误?
#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;
}
Run Code Online (Sandbox Code Playgroud)
在gdb中执行backtrace给出: -
> #0 0x00007ffff7ad9d30 in ferror () from /lib/libc.so.6 > #1 0x00000000004005fa in main () at test.c:9
file为NULL.您没有看到第一个printf,因为程序在刷新stdout之前崩溃了.