【问题标题】:C- How to manipulate processes, child processes and grandchild processes with fork();C- 如何使用 fork() 操作进程、子进程和孙进程;
【发布时间】:2014-09-21 19:44:29
【问题描述】:

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

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

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

【问题讨论】:

标签: c process fork


【解决方案1】:

您可能应该阅读一本有关 Posix 编程的书。 代码的大致轮廓如下所示:

if(fork()==0){
   if(fork()==0){

   }else{
      wait()
   }
}else{
  if(fork()==0){
     if(fork()==0){

     }else{
        wait()
      }
  }
   wait()
   wait()
}

你应该添加几个 sleep() 调用来获得你想要的等待行为。

同时杀死两个孙子并非易事。我会用几个信号处理程序来处理它。 例如,父进程向两个子进程发送信号,然后它们执行它们的“catch”函数,向孙进程发送 KILL 信号。

【讨论】:

  • 不是一本关于 shell 的书,而是一本关于 Posix 编程的书。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-18
  • 1970-01-01
相关资源
最近更新 更多