verständnisfrage, FILE-pointer



  • hi,

    mal ne kurze verständnisfrage. ich öffne mittels fopen() eine datei und spreche diese übern FILE pointer an. soweit so gut. wenn ich jetzt aber ohne fclose() einfach wieder ein fopen() hinterherwerfe (weil der benutzer jetzt auf einmal ne andere datei öffnen will) was passiert mit der datei, auf die der pointer zuerst zeigte? wird der schreibpuffer zurück geschrieben und die datei freigegeben oder was genau kann mir passieren? erreiche ich evtl. irgendwann FOPEN_MAX ohne eine chance die ganzen offenen dateien zu schließen (da der pointer ja immer auf die aktuelle datei zeigt)?



  • ok ich war etwas zu voreilig. hab gemerkt, dass ich zwar nicht unbedingt nen fehler bekomm wenn ich über nen bereits zugewiesenen pointer ne datei öffnen will aber dass dann trotzdem immer noch auf die alte datei verwiesen wird. daher verwendet ich jetzt simpel freopen().

    vielen dank für die aufmerksamkeit 😉



  • fopen() erzeugt afaik ein neues FILE und gibt dir seine Adresse zurück. Wenn du diese einem vorhandenen FILE* zuweist, ist dessen voriger Inhalt weg (Speicherleck).


Anmelden zum Antworten