我仍然认为自己是 CI 中的新 webby,我正在尝试读取文件,文件不是二进制文件,但它的大小从 feb kbs 的小尺寸到 feb Mbs 的大尺寸文件不等。我正在使用 fgets 函数,我已经参考从这个链接,但编译后,我得到分段错误。我尝试用 gdb 调试它,发现我能够打开文件但无法读取。这是我的代码。
#include<stdio.h>
#define MAX_LENGTH 1048576
int main()
{
FILE *fp;
char *result;
char line[MAX_LENGTH];
fp =fopen("/home/shailendra/sampleprograms/C/shail1.txt","r");
if(result=fgets(line,MAX_LENGTH,fp) != NULL)
printf("The string is %s \n",result);
else
printf("Error opening the file");
if(fclose(fp))
printf("fclose error");
}
这个分段错误真的很吸你的血。我知道这是由于内存分配不足,但我使用了 MAX_LENGTH 1048576,所以我不认为它一定会产生任何问题。我已经尝试过只有一行的两个小文件和一个多行的大文件,但我无法弄清楚为什么会出现分段错误。