家长应该收到有关孙子工作完成的信息
问题描述:
标题说明了一切。我正在学习操作系统,我想用C编程语言编写一个代码,Parent应该会收到有关完成孙子工作的信息。我该怎么做,用叉和等待?家长应该收到有关孙子工作完成的信息
代码将有关子作业完成的信息返回给父项。我想和孙子做同样的事情。
这是我到目前为止已经试过:
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
这样做将是以下流方式:
-
t1
创建子进程t2
- 个
t1
等待子进程t2
退出状态
现在,父t1
进程受阻,等待子进程t2
结束。
- 使子进程
t2
创建自己的子进程t3
。 -
t2
等待子进程t3
。
现在t3
运行,完成并返回退出状态为父t2
。 t2
将运行并将该状态返回给其父母t1
。这样,您将t3
的退出状态一直传播到t1
。
你真的是指父母和*盛大的孩子,而不仅仅是父母和孩子吗?你到目前为止尝试过什么?它是如何工作,或不工作?请花一些时间[阅读如何提出好问题](http://stackoverflow.com/help/how-to-ask),并学习如何创建[最小,完整和可验证示例](http:/ /stackoverflow.com/help/mcve)。 –