fopen bleibt hängen



  • Mein Programm bleibt scheinbar während des Aufrufs von fopen hängen, wenn vorher ein bestimmter Teil des Programms durchlaufen wurde.

    ...
    FILE *f;
    ...
    
    printf("1\n");
    f = fopen (filename, "w");
    printf("2\n");
    if (! f){
       return 0;
    }
    MPI_Bcast(...
    

    In der Konsole wird nur "1" ausgegeben. Es kommt keine Fehlermeldung, das Programm beendet sich nicht. Woran könnte das liegen? Wonach kann ich suchen?



  • Hallo,
    hast du vorher schonmal fopen aufgerufen? Wo wird "filename" deklariert und benutzt?



  • An anderen Stellen öffne ich andere Dateien zum lesen im Programm, dort funktioniert es ohne Probleme. "filename" ist nicht das Problem, auch mit einer konstanten Zeichenkette tritt das Problem auf.



  • Kann es am MPI liegen?
    Wird da irgendetwas geblockt?



  • Ok, es hat sich jetzt herausgestellt, dass an einer ganz anderen Stelle beim freigeben von Speicher irgendetwas schief läuft. Wie das jetzt zu dem Fehler geführt hat weiß ich nicht, aber das muss ich auch nicht unbedingt nachvollziehen können.



  • Ich frag nur mal vorsichtshalber, ob alle vorigen fopen mit entsprechenden fclose versehen wurden und nicht zu viele Dateien gleichzeitig offen sind?

    Probier mal statt deinem zweiten printf ein
    fprintf(STDOUT, "2\n")

    Eigentlich dachte ich schreibt printf nach einem Newline, aber versuchs mal. Vllt. liegt der Fehler ja doch erst nach den printfs.

    Edit:
    Oh ok, mit sowas hat ich auch schon zu oft zu tun.


Anmelden zum Antworten