当我在C中打开文件时,我目前正在这样做:
int main()
{
FILE *f
f = fopen("employers.dat", "rb");
if(f == NULL)
{
PUTS("can not open the file:\"employers.dat\"");
fclose(f);
exit(-1);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
fclose指针是否必须使用NULL?
Mik*_*kis 14
它不仅是没有必要使用fclose()时f是NULL,但你实际上应该不调用fclose()时f是NULL.
如果f是NULL,那么该文件从未打开过,所以它不需要任何关闭.
即使文件在某种程度上需要关闭,该解决方案不可能涉及传球NULL到fclose(),因为一个NULL参数进行绝对没有信息fclose()可以用来找出关闭该文件.
我不确定是否fclose()包含用于检测和忽略NULL传递给它的错误参数的额外代码,但即使这样做,最好不要诱惑你的命运.