当进程被杀死时文件描述符会发生什么?

sap*_*apg 4 file-descriptors files

在我的应用程序中,我使用open()调用打开了一个文件。

我的问题是:

  • close()如果我终止进程,文件是否会自动关闭(如使用对返回的文件描述符的调用)?
  • 如果应用程序崩溃(例如分段错误)会发生什么?
  • 这是在某处记录的吗?

Ste*_*itt 9

是的,无论进程终止的原因如何,文件都会在进程终止时自动关闭。

在 POSIX 中记录。在“进程终止的后果”中,除其他后果外:

  • 在调用过程中打开的所有文件描述符、目录流、转换描述符和消息目录描述符都应关闭。

在“终止进程”中:

重要的是,无论进程调用_exit()(可能间接通过exit())还是由于信号或其他原因而终止,如上所述的进程终止的后果都会发生。