gpt4 book ai didi

linux - UNIX(或 LINUX)中的退出和等待函数

转载 作者:太空狗 更新时间:2023-10-29 12:15:09 26 4
gpt4 key购买 nike

我正在编写一个模拟基于 unix 的操作系统的程序,我有一些问题:

<醇>
  • 来自 unix.org

    The wait() function will suspend execution of the calling thread until status information for one of its terminated child processes is available, or until delivery of a signal whose action is either to execute a signal-catching function or to terminate the process

  • 假设有一个进程 A 有两个子进程 BC。如果 BC调用exit函数,然后 A调用wait函数,会获取哪个退出状态? B 的那个还是 C 的那个?哪个先,为什么?

    2.当进程处于等待状态时,它不会执行其代码,直到例如其中一个已终止子进程的状态信息可用,对吗?所以它不能在等待时调用 fork 函数,对吗?

    3.在UNIX下,进程正常kill有什么限制吗?

    3.a.用户是否有权终止根进程? (所有根进程随意?)

    最佳答案

    1. wait() 返回退出的任何子进程的 PID。如果有两个退出,则必须调用 wait() 两次并检查返回的 PID。您不应该依赖订单。
    2. 正确,wait()(没有WNOHANG 选项)的全部目的是阻止。因此,在等待过程中,除了处理信号外,您不能做任何其他事情。
    3. 我不确定您在这里的确切意思,但我怀疑答案大多是“否”。
    4. 用户不能终止根进程(至少,没有特殊配置)。用户也不能终止其他用户拥有的进程。

    关于linux - UNIX(或 LINUX)中的退出和等待函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27832287/

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