exit()vs _exit():调用_exit()是否确保关闭所有打开的fd和套接字?

Man*_*dar 2 c linux exit

我已经习惯exit()了终止这个过程.我没有注册任何退出处理程序也不关心退出时刷新缓冲区,所以想到使用_exit()更强大的方法来终止进程.

唯一的问题是,是否能正常_exit()处理所有打开文件描述符和打开套接字的关闭?

cni*_*tar 6

函数exit调用_exit.来自TLPI:

exit()执行以下操作:

  • 退出处理程序被调用
  • 刷新stdio流缓冲区
  • 调用_exit()系统调用

_exit标准页面说明了这一点:

应关闭调用进程中打开的所有文件描述符,目录流,转换描述符和消息目录描述符.