fclose Problem in Linux
-
Hallo,
ich bekomme beim Testen meines Programms unter Linux einen fehler. und zwar bei fclose. Das schreibt der Compiler "double free or coruption" dabei ruf ich fclose nur ein mal auf. Jemand eine Idee was sein könnte?
Tritt auch nicht bei allen Files auf! Kann man abfragen ob ein File noch geöffnet ist?danke!
mfg,
shed
-
Machst du vielleicht irgend wo deinen Heap kaputt? Das könnte zu so etwas führen. Aber ohne ein minimales Beispiel was dein Problem illustriert, wird man dir nicht helfen können.
-
Hallo,
hier mein Source-Code. Der Fehler tritt eben bei fclose auf.
Danke!
mfg,
shedFILE* fp = fopen(filename , "r"); if(fp != NULL) { char c=fgetc(fp); int i; for (i=0; c != EOF ;c=fgetc(fp), i++) { buffer[i]= c; } buffer[i] = '\0'; fclose(fp); }
-
Leider lässt sich dieses Beispiel nicht kompilieren, damit können wir den Fehler nur sehr schlecht nachvollziehen.
Hint: Du könntest mal dazusagen wie buffer definiert ist.
-
char * buffer = new char[fileSize]...die file größe ermittle ich mir früher. Das komische ist ja, das in windows alle 10 Testfiles funktionieren. Unter Linux nur 8.
mfg,
-
Lasst uns bitte an einem Schauplatz bleiben.
Da das Problem möglicherweise mit char <-> EOF zusammenhängt (also kein Linux-Problem) schlage ich vor in http://c-plusplus.net/forum/viewtopic-var-t-is-181114.html weiterzuschreiben.
-
Pro Thema bitte nur _ein_ Thread eröffnen!