首先,看段代码
1 #include <stdio.h>
23 int main()
4 {
5 char buffer[BUFSIZ+1];
6 FILE *fpin;
7
8 if((fpin = fopen("test","r") == NULL))
9 {
10 printf("can't open test.\n");
11 return 1;
12 }
13
14 while(fgets(buffer,BUFSIZ,fpin) != NULL)
15 {
16 if(fputs(buffer,stdout) == EOF)
17 {
18 printf("fputs error to pipe.\n");
19 return 1;
20 }
21 }
22 }
这段代码运行会产生段错误:Segmentation fault
经过调试gdb调试发现段错误是第14行代码处 fgets(buffer,BUFSIZ,fpin) 产生的。
这