gpt4 book ai didi

linux - 父/子进程关闭文件描述符

转载 作者:太空狗 更新时间:2023-10-29 11:10:30 27 4
gpt4 key购买 nike

如果你在一个父进程上执行一个 fork() 并创建一个子进程,然后子进程关闭从 fork 继承的 fd。

文件是否会在父级中保持打开状态,因为它们是独立的?标准 I/O 或 stderr 呢?

最佳答案

不管一个文件描述符是代表一个文件还是一个设备,也不管它是否曾经作为标准的 i/o 描述符传递给任何进程:如果你在一个进程中关闭它,另一个进程仍然有一个有效的描述符。

(这很自然。想象一下描述符将与另一个进程中的描述符相互依赖。然后,如果子进程意外崩溃,父进程甚至很难记录这个事实,一旦检测到崩溃。它无法通过任何先前打开的描述符记录事实,因为所有形式的进程退出都涉及关闭所有打开的描述符。因此,故障模式往往会跨进程传播。此外,即使是常规的、无错误的 I/O通过这种假设的共享描述符的模式将在竞争条件中大量存在。)

关于linux - 父/子进程关闭文件描述符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10198541/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com