Ich war in C einfache Datei versucht, die Handhabung und ich wollte sicherstellen, dass die Datei versucht das zugegriffen werden kann, mitfclose() verursacht Segmentation Fault
#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;
}
dann zeigt es
Segmentation fault (core dumped)
aber es segmet nicht, wenn die Datei bereits existiert (zB wenn ich sie manuell erstellt habe oder wenn ich das Programm das zweite Mal starte)
Bitte helfen Sie. Ich brauche das für unser Abschlussprojekt in einer Woche und ich habe noch nicht den Überblick über Dateien und Hinweise.
Ich bin mit "gcc (Ubuntu/Linaro 4.8.1-10ubuntu9) 4.8.1"
P. S
Ich weiß, dass es scheinbar ähnliche Fragen besteht aber bitte nicht downvote. Verstehe, dass ich seit ein paar Monaten mit dem Codieren angefangen habe und deshalb diese erweiterten Codes und Sachen nicht verstehen kann.
pps
sah ich diese in einer anderen Frage
Es gibt keine Garantie in Ihrem ursprünglichen Code, die fopen tatsächlich funktioniert, wobei in diesem Fall wird es NULL zurück und die fclose nicht Verhalten definiert werden .
Also wie genau überprüfe ich, ob es funktioniert hat?
Die Prüfung korrekt ist, einfach nicht 'fclose (FP1)' 'wenn fp1 == NULL' aber' nennen fp1 = fopen (..., "w"); ' –
Thanks :) Die Antworten hat mir wirklich geholfen Coding läuft bisher reibungslos. – user3437503
Mögliches Duplikat von [fclose() verursacht Segmentierungsfehler] (http://stackoverflow.com/questions/1443164/fclose-causing-segmentierung-fault) –