打开未正确关闭的文件会发生什么?

时间:2017-08-18 17:48:10

标签: file operating-system file-handling

如果我在写入文件后没有关闭文件会怎么样?

我们假设我们遇到了too many open files错误,并且由于程序崩溃了。

操作系统是否为我处理?如果这会损坏未关闭的文件,我怎么注意到它们已被损坏?

2 个答案:

答案 0 :(得分:3)

来自exit()

  

_exit()会关闭打开的文件描述符,这可能会导致未知的延迟,等待挂起的输出完成。

每个return都会隐藏系统调用以退出,因此操作系统会关闭所有未关闭的描述符。

答案 1 :(得分:2)

一般来说,如果您写入文件,然后您的应用程序崩溃,操作系统会将缓冲区刷新到磁盘并为您清理。如果您的程序退出而未明确关闭文件,则会发生相同的情况。这不会损坏文件。

糟糕的情况是当你写一个文件并且有人拔掉电脑上的插头时。