我想创建一种算法,利用 fork(),其中一个进程必须等待几秒钟然后创建一个子进程,2 秒后创建第二个子进程。然后又过了几秒钟,第一个 child 得到了一个 child ,使其成为第一个孙子,并对第二个 child 做同样的事情。
最后,我如何“杀死”每个 child ,在这种情况下,我想在“杀死”第一个孙子和第二个孙子之后同时杀死第一个和第二个 child 。
基本上如何管理流程以及如何完成它们。
最佳答案
您可能应该阅读一本有关 Posix 编程的书。 代码的大致轮廓如下所示:
if(fork()==0){
if(fork()==0){
}else{
wait()
}
}else{
if(fork()==0){
if(fork()==0){
}else{
wait()
}
}
wait()
wait()
}
您应该添加几个 sleep() 调用来获得您想要的等待行为。
同时杀死两个孙子并不是一件容易的事。我会用几个信号处理程序来处理它。 例如,父进程向两个子进程发送信号,然后它们执行“catch”函数,该函数向孙进程发送 KILL 信号。
关于C- 如何使用 fork() 操作进程、子进程和孙进程;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25963165/