当函数 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
超出范围时,用于访问文件的描述符(或句柄)超出范围,无法访问或关闭它。
我正在检查函数中文件是否存在。
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
超出范围时,用于访问文件的描述符(或句柄)超出范围,无法访问或关闭它。