私は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)
ただし、ファイルが事前に存在する場合 (たとえば、手動で作成したとき、またはプログラムを 2 回目に実行したとき)、セグメンテーション違反は発生しません。
助けてください。1 週間後に予定されている最終プロジェクトでこれが必要ですが、まだファイルとポインタのコツをつかんでいません。
「gcc (Ubuntu/Linaro 4.8.1-10ubuntu9) 4.8.1」を使用しています
Ps
これは別の質問で見ました
元のコードでは、fopen が実際に機能しているという保証はありません。その場合、NULL が返され、fclose の動作が定義されません。
では、それが機能したかどうかを正確に確認するにはどうすればよいですか?