Mi okozhat fclose () függvénynek c-ben nem nulla visszatérési értéket?
Volt egy hosszabb kódom, az fclose ellenőrzőm mutatta, hogy nem nulla a visszatérési értéke, ezért csináltam egy külön programot, hogy ellenőrizzem ott is, de a probléme nem javult meg.
FILE *fq;
fq = fopen("haromszog.txt", "rt");
if (fq == NULL)
printf("nyitasihiba");
fclose(fq);
if (fq != NULL)
printf("zarasihiba");
Ennyi a minimalizált program, futtatáskor kiírja, hogy zarasihiba. Mi okozhatja?
Azért, mert nem így működik ez.
Az fopen()-nel lefoglalsz memóriaterületet és annak a címét megkapja az fq pointer, majd mikor bezárod a fájlt, mindösszesen annyi történik, hogy felszabadítja a lefoglalt memóriát a függvény, de attól még továbbra is arra a címre fog mutatni, tehát manuálisan kell NULL értéket adnod neki. Próbáld ki, hogy megnyitás és bezárás után kiíratod ezt: printf("ptr erteke: %p\n",fq);
Dokumentáció: [link]
Hasznos dolgok vannak benne, olvass bele mielőtt kérdezel.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!