[C/C++] Überprüfen ob Datei existiert in C

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Leon, 24. November 2008 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 24. November 2008
    Überprüfen ob Datei existiert in C

    Hi,
    will überprüfen ob eine Datei existiert, jedoch wird anscheinend bei der Zuweisung die Datei erstellt und die if Bedingung wird nicht mehr wahr und meine Fehlerbehandlungsfunktion nicht ausgeführt, da die Datei ja anscheinend erstellt wird.
    Hier mal der Code:
    Code:
     output=fopen(ausgabeDatei,"w"); /* Die Öffnung der Ausgabedatei wird der Variablen output zugewiesen */ 
     if(output == NULL) /* Wenn die Ausgabedatei nicht vorhanden ist, wird das Programm beendet */
     {
     printf("Blub2");
     fehlerBehandlung(14,argumentenAnzahl,output);
     fclose(output);
     exit(EXIT_FAILURE);
     }
    
    Woran kann das liegen?
    Schonmal vielen Dank im voraus.

    [EDIT] das printf in der if Bedingung hab ich zur Überprüfung eingebaut ob der in die Schleife gegangen wird.
     
  2. 24. November 2008
    AW: Überprüfen ob Datei existiert in C

    Warum verwendest du den Parameter "w"?
    Nimm doch einfach "r" und überprüfe, ob output etwas zugewiesen wurde, wenn nicht, dann existiert die Datei nicht.

    mfg duddl

    edit:
    hab noch eine hp gfunden in der das beschrieben wird.
    C-Programmierung: Dateien – Wikibooks, Sammlung freier Lehr-, Sach- und Fachbücher

    edit2:
    hmm die gurke war wohl schneller mit der hp
     
  3. 24. November 2008
    AW: Überprüfen ob Datei existiert in C

    mit 'w' legt er falls die Datei nich existiert einen neue an.

    wie duddl schon sagt du musst 'r' verwenden.

    C/C++ - Textdateien

    hier mal ne Seite wo es beschrieben ist.
     
  4. 24. November 2008
    AW: Überprüfen ob Datei existiert in C

    hmm, wenn ich jetzt auf "r" änder gibs nen Segmentation Fault, wenn ich eine Datei angebe, die nicht existiert.
    Woran könnte das liegen?
     
  5. 24. November 2008
    AW: Überprüfen ob Datei existiert in C

    Also da dürfte dann was ärgeres nicht stimmen. Ich hab das mal ganz kurz geprogged unter Windows mit Dev-Cpp. Einfach eine Datei geöffnet und wieder geschlossen, bzw wenn sie nicht vorhanden war eben nicht geöffnet.

    Code:
    FILE *datei;
     
    datei=fopen("D:/test1.txt","r"); 
     if(datei == NULL)
     {
     printf("nicht gefunden\n"); 
     }
     else 
     {
     printf("gefunden\n"); 
     fclose(datei);
     }
    
    Dieser Codeabschnitt funktioniert einwandfrei, falls die Datei vorhanden ist, und auch wenn sie nicht vorhanden ist. Wenn er sie findet, und öffnen kann (Berechtigungen müssen natürlich gegeben sein), dann geht er in den else Teil und wenn die Datei nicht vorhanden ist, dann geht er in den normalen if Teil. Hab da auch keinen Segfault, der tritt ja meistens nicht mit dem Dateistrom auf, sondern mit dem Zugriff auf Felder. Vll hast du da irgendwo ein Problem, was aus dem kurzen Code-Stück nicht hervorgeht.

    mfg duddl
     
  6. 24. November 2008
    AW: Überprüfen ob Datei existiert in C

    Hat sich erledigt, habe einen Logikfehler in der Fehlerbehandlung gehabt.
    Danke für alle die versucht haben mir zu helfen
     
  7. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.