gpt4 book ai didi

c - parent 应该收到有关孙子工作完成的信息

转载 作者:太空宇宙 更新时间:2023-11-04 02:30:15 26 4
gpt4 key购买 nike

标题说明了一切。我正在学习操作系统,我想用 C 编程语言编写代码, parent 应该收到有关孙子工作完成的信息。我如何使用 forkwait 来做到这一点?

该代码将有关子工作完成的信息返回给父级。我想对孙子做同样的事情。

这是我到目前为止尝试过的:

int main( int argc, char * argv[] ){
pid_t child, rv;
int st;
child = fork();
if( child == 0 ){
sleep(5);
return 5;
}
printf( "Child PID = %ld\n", (long)child );
rv = wait( &st );
printf( "wait() = %ld\nst = %x\n", (long)rv, st );
printf( "Child exit code = %d\n", WEXITSTATUS(st) );
return 0;

}

最佳答案

让我们调用我们的流程如下:

t1 - Parent process
t2 - Child process
t3 - Grandchild process

执行此操作的方法如下:

  1. t1 创建子进程 t2
  2. t1等待子进程t2退出状态

现在,父进程 t1 被阻塞并等待子进程 t2 完成。

  1. 让子进程 t2 创建自己的子进程 t3
  2. t2 等待子进程 t3

现在 t3 运行、完成并将退出状态返回给父级 t2t2 将运行并将该状态返回给其父 t1。通过这种方式,您可以将 t3 的退出状态一直传播到 t1

关于c - parent 应该收到有关孙子工作完成的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44236039/

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