我一直在尝试在 C 中进行简单的文件处理,并且我想确保可以尝试使用此文件来访问该文件
#include<stdio.h>
main()
{
CheckFile();
}
int CheckFile()
{
int checkfile=0;
FILE *fp1;
fp1 = fopen("users.sav","r");
if(fp1==NULL)
{
fopen("users.sav","w");
fclose(fp1);
}
if(checkfile!=0)printf("\nERROR ACCESSING FILE!\nNow exiting program with exit code: %d\n",checkfile);exit(1);
return 0;
}
然后它显示
Segmentation fault (core dumped)
但是如果文件已经预先存在(例如当我手动创建它或当我第二次运行程序时)它不会出现段错误
请帮忙。我需要这个用于一周后到期的最终项目,但我还没有掌握文件和指针的窍门。
我正在使用“gcc (Ubuntu/Linaro 4.8.1-10ubuntu9) 4.8.1”
附言
我在另一个问题中看到了这个
在您的原始代码中无法保证 fopen 实际工作,在这种情况下它将返回 NULL 并且 fclose 不会被定义为行为。
那么我该如何检查它是否有效呢?