sapg Asked: 2018-03-16 02:28:15 +0800 CST2018-03-16 02:28:15 +0800 CST 2018-03-16 02:28:15 +0800 CST 当进程被杀死时文件描述符会发生什么? 772 在我的应用程序中,我使用open()调用打开一个文件。 我的问题是: 如果我终止进程,文件是否会自动关闭(如使用close()返回的文件描述符上的调用)? 如果应用程序崩溃(例如分段错误)会发生什么? 这是在某处记录的吗? files file-descriptors 2 个回答 Voted Best Answer Stephen Kitt 2018-03-16T02:40:55+08:002018-03-16T02:40:55+08:00 是的,无论进程终止的原因是什么,当进程终止时文件将自动关闭。 这记录在 POSIX 中。在“进程终止的后果”中,除其他后果外: 在调用进程中打开的所有文件描述符、目录流、转换描述符和消息目录描述符都应关闭。 在“终止进程”中: 重要的是,无论进程调用_exit() (可能是通过exit()间接调用)还是由于信号或其他原因而终止,进程终止的后果都会发生,这一点很重要。 UVV 2018-03-16T02:40:18+08:002018-03-16T02:40:18+08:00 您可以阅读有关 Linux 内核进程管理的信息,例如这里 进程终止 当一个进程终止时,内核释放该进程拥有的资源,并通知子进程的父进程它的消亡。
是的,无论进程终止的原因是什么,当进程终止时文件将自动关闭。
这记录在 POSIX 中。在“进程终止的后果”中,除其他后果外:
在“终止进程”中:
您可以阅读有关 Linux 内核进程管理的信息,例如这里