打开未正确关闭的文件会怎样?

What happens to open files which are not properly closed?

如果我在写入文件后不关闭文件会怎样?

让我们假设我们遇到了一个 too many open files 错误并且因此程序崩溃了。

OS 会为我处理吗?如果这损坏了未关闭的文件,我怎么知道它们已损坏?

来自exit()

_exit() does close open file descriptors, and this may cause an unknown delay, waiting for pending output to finish.

每个 return 都隐藏了一个退出系统调用,因此任何未关闭的描述符都会被 OS 关闭。

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

糟糕的情况是,当你写入一个文件时,有人拔掉了计算机上的插头。