当函数 returns 时文件是否在 c 中关闭?

Does the file closes in c when the function returns?

我正在检查函数中文件是否存在。

int main(int argc, char* argv[])
{
  foo(argc, argv);
  // File exists
  // Do something
}

void foo(int argc, char** argv)
{
  int f = open(argv[1], O_RDONLY);
  if(f == -1)
  {
    exit(1);
  }
}

当函数调用时文件是否超出范围或关闭 returns 或者它是否会保持打开状态并影响性能,因为我正在编写 c 代码以通过系统调用将一个文件的内容复制到另一个文件.

文件没有关闭,因为没有关闭它的代码。该文件不会超出范围,因为只有变量或对象可以超出范围。但是,当 f 超出范围时,用于访问文件的描述符(或句柄)超出范围,无法访问或关闭它。