我想创建一个算法,利用fork(),其中一个进程必须等待几秒钟,然后创建一个子进程,2秒后生成第二个子进程。然后又过了几秒钟,第一个孩子得到了一个孩子,使其成为第一个孙子,并对第二个孩子做了同样的事情。
最后我如何“杀死”每一个,在这种情况下,我想在“杀死”第一个孙子然后第二个孙子后同时杀死第一个和第二个孩子。
基本上如何管理流程以及如何完成流程。
答案 0 :(得分:0)
你应该读一本关于Posix编程的书。 代码的粗略轮廓如下所示:
if(fork()==0){
if(fork()==0){
}else{
wait()
}
}else{
if(fork()==0){
if(fork()==0){
}else{
wait()
}
}
wait()
wait()
}
你应该添加几个sleep()调用来获得你想要的等待行为。
同时杀死两个孙子并非易事。我会用几个信号处理程序来接近它。 例如,父发送信号给两个子进程,然后他们执行他们的" catch"功能,向孙子程序发送KILL信号。