当我在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;
}

如果指针是fclose,是否有必要使用NULL

最佳答案

fclose()f时,使用NULL不仅需要而不是,而且当fclose()f时,您实际上应该而不是调用NULL

  • 如果fNULL,则该文件从未以开头打开,因此不需要任何关闭。
  • 即使文件需要以某种方式关闭,该解决方案也不可能将NULL传递给fclose(),因为NULL参数绝对不包含fclose()可用来确定要关闭哪个文件的信息。
  • 我不确定fclose()是否包含用于检测和忽略传递给它的错误NULL参数的额外代码,但是即使这样做,也最好不要诱惑您的命运。
  • 关于c - 如果文件指针为空,是否必须使用fclose()? (C),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32674141/

    10-12 20:36