当fopen失败时需要fclose吗?

Ven*_*nom 13 c c++

请考虑以下代码段.

{
....
FILE *fptr = fopen("file_that_does_not_exist","r");
...
}
Run Code Online (Sandbox Code Playgroud)

在这里,如果fopen失败,我们还需要调用fclose()进行一些清理吗?

moa*_*lon 17

不,因为fopen()返回0,这是一个无效的文件句柄.如果你试图这样做,fclose()甚至可能会崩溃.


Kar*_*kya 7

它的简单朋友,我的意思就是想象......即使它无法启动,你还要关机吗......:D

就像您不需要关闭实际上从未打开过的文件一样.

一些额外的提示:fclose仅用于释放文件,以便它可以被其他应用程序或模块使用,因为它不是可共享的资源.此外,fclose意味着您现在释放您正在使用的指针,并可以将其用于任何其他文件.