gpt4 book ai didi

c - 发出 wait() 时进程终止

转载 作者:行者123 更新时间:2023-11-30 18:31:26 29 4
gpt4 key购买 nike

当进程终止并为其发出 wait() 时会发生什么?当一个子进程终止但没有人为其执行 wait() 时会发生什么?如果对尚未终止的进程执行 wait() 会发生什么情况?

最佳答案

如果我误解了这些问题,请告诉我:

  • what happens when a process terminates and a wait() is isssued for it?

    终止的进程将其退出状态返回给其父进程,父进程使用等待

  • What happens when a child terminates but no one does a wait() for it?

    正如您在评论中所说,被终止的 child 变成了僵尸进程,直到其父进程使用 wait 获取其退出状态。

  • What happens if you do a wait() for a process that has not terminated yet?

    通常,执行wait的进程将阻塞,直到它获得其子进程的退出状态(尽管可以使用waitpid(2)告诉它不要阻塞, “wait 系统调用组”中的另一个系统调用,它提供了更多选项)。所谓阻塞,是指在子进程执行时它将暂停执行。当子进程终止时,它向操作系统返回退出状态。然后,该退出状态将返回给使用 wait 的父进程,父进程在获取该退出状态后恢复执行。

<小时/>

就僵尸进程而言:

当一个进程死亡时,它的子进程会自动成为init的子进程,而init是一个仅用于wait的进程。因此,如果僵尸进程的父进程在没有 wait 获取其僵尸子进程的退出状态的情况下死亡,那么 init 将执行此操作,因为它将成为僵尸进程的新父进程。

关于c - 发出 wait() 时进程终止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23145698/

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