【问题标题】:pthread: does exit() explicitly close file descriptors of the threadpthread:exit() 是否显式关闭线程的文件描述符
【发布时间】:2020-10-23 06:11:50
【问题描述】:

假设一个线程打开一些文件等,从而获得文件描述符。是否保证来自线程的exit() 会关闭该线程打开的所有文件描述符?

【问题讨论】:

  • exit()不是退出整个进程,而不仅仅是特定线程吗?
  • @Barmar,是的,我知道,但我想知道是否存在 FD 泄漏的可能性。
  • 当一个进程退出时,它的所有FD都被关闭。线程不应该有所作为。

标签: linux multithreading pthreads


【解决方案1】:

exit() 使当前的进程 退出,因此所有线程都被销毁(并且它不是线程安全的,因此您不应该在多线程程序中使用它)。 文件描述符指的是进程而不是线程,所以当你调用 pthread_exit() 或者当你从线​​程的入口函数返回时,它们不会被关闭。

【讨论】:

    猜你喜欢
    • 2017-09-05
    • 1970-01-01
    • 2013-11-08
    • 2010-09-21
    • 1970-01-01
    • 2012-04-29
    • 1970-01-01
    • 1970-01-01
    • 2011-06-03
    相关资源
    最近更新 更多