1

可能的重复:
在 C 中没有 fclose 的 fopen

为什么我需要在C中使用fclose函数?每次在 c 中打开文件时我都会关闭文件,仍然只是为了了解我想知道如果我不使用fclose函数会发生什么?如果有人因不使用fclose而遇到问题,请分享。

4

3 回答 3

6

如果您不关闭文件,您将耗尽更多文件的资源。在 Linux 中,每个进程默认打开 1024 个文件,这是因为“文件句柄”是表的索引(即索引数组)。我不知道它在 Windows 上是如何处理的,但如果你只是继续打开文件但不关闭它们,这个过程迟早会耗尽资源。

另一方面,如果您打开一个在程序的整个生命周期中都使用的文件,则无需一直打开/关闭它。打开一次并保持打开状态。此外,退出进程时所有打开的文件都将关闭,因此如果您的程序只是对文件进行一些快速处理然后退出,则不必关闭它。但是,如果我正在查看代码,我仍然会添加关于它的注释,如果您分配资源(内存、文件、其他东西),我认为您应该在完成后释放它,即使它是由系统自动完成的。

于 2012-10-12T10:10:57.240 回答
1

任何文件都是i/o 源,因此类似于任何源:使用它之后,释放它
fclose出于这个原因使用函数,它允许文件被另一个管理器/处理器等使用。
如果您不使用 fclose 函数,这可能会导致另一个进程/管理器无法访问给定文件的情况

于 2012-10-12T10:10:52.040 回答
0

如果您不关闭文件,则可能不会将所有信息存储在内存中。文件也不能被其他人打开

于 2012-10-12T10:12:02.513 回答