C-如何使用fork()操作进程,子进程和孙进程;

时间:2014-09-21 19:44:29

标签: c process fork

我想创建一个算法,利用fork(),其中一个进程必须等待几秒钟,然后创建一个子进程,2秒后生成第二个子进程。然后又过了几秒钟,第一个孩子得到了一个孩子,使其成为第一个孙子,并对第二个孩子做了同样的事情。

最后我如何“杀死”每一个,在这种情况下,我想在“杀死”第一个孙子然后第二个孙子后同时杀死第一个和第二个孩子。

基本上如何管理流程以及如何完成流程。

1 个答案:

答案 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信号。