使用后为什么需要关闭文件?

时间:2013-04-06 18:30:56

标签: file-io

我从一本书中读到一个问题:“如果操作系统在程序终止后关闭文件,为什么程序员需要手动关闭文件(即调用file.close())?”

我能想到的唯一原因是程序可能无法正确终止,因此文件可能仍然打开,因此消耗系统资源,因为文件保存在缓冲区中。

还有其他原因吗?

编辑:我想到了另一个原因。调用file.close()迫使操作系统将任何尚未提交给文件的更改刷新到磁盘。

2 个答案:

答案 0 :(得分:1)

如果程序员手动关闭文件,则可以控制何时/如何释放资源。

如果留给操作系统,你无法确定何时/如果要进行清理,它通常也是不好的做法。

答案 1 :(得分:1)

在某些情况下,程序会多次调用open,如果它们没有再次释放,它将用完文件描述符。