Speicherzugriffsfehler bei fopen



  • Hallo ich habe bei dem unten stehenden Codeschnipsel das Problem das nach dem Befehl printf (Datei nicht vorhanden ..)ein Speicherzugriffsfehler entsteht.

    Ich möchte prüfen ob eine Datei vorhanden ist und wenn nicht soll sie angelegt werden.

    Danke für eure Tipps

    [ FILE *mdatei; /* Datei Messwerte schreiben /
    mdatei=fopen(Ausgabedateiname,"r");
    if(mdatei == NULL) /
    prüfen ob die Datei vorhanden -> wenn nicht vorhanden dann Rückgabe 0 /
    {
    printf ("Datei nicht vorhanden ! Datei wird erstellt !\n");
    }
    mdatei=fopen(Ausgabedateiname,"a+"); /
    Datei erstelln wenn nicht vorhanden oder Zeile einfügen */
    ]


  • Mod

    Der Fehler liegt woanders. Lies dir dazu bitte den dritten Link in meiner Signatur durch. Was auf jeden Fall schon einmal falsch ist, ist das Öffnen der schon offenen Datei. Dies würde auch einen spätere Speicherzugriffsfehler erklären, weil dir das open am Ende deines Codes dann einen Nullzeiger zurück geben wird. Du musst die Datei erst schließen oder reopen benutzen.

    Außerdem ist das Öffnen im Lesemodus gar nicht identisch mit der Existenz der Datei oder der Möglichkeit in diese zu Schreiben. Es gibt in den meisten Dateisystemen schließlich so etwas wie Zugriffsrechte. Eine bessere Möglichkeit herauszufinden, ob eine Datei existiert und beschreibbar ist, ist die (relativ portable) Betriebssystemfunktion stat.


Anmelden zum Antworten