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

标签 c process fork

我想创建一种算法,利用 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/

相关文章:

Python opencv 返回 Bad Properties

c - 从文件中读取一串信息并按int结果排序

node.js - 集群和 fork 一样吗?

c++ - 与Boost中的dup2类似的功能

multithreading - 可以使用多线程并行运行 100 个 perl 脚本吗?

c - 如何使用 sscanf 检查 argv 参数是否是数字而不是其他内容?

c - glib hashtable 在删除时是否释放 key ?

c# - 从 C# 调用 CreateProcessAsUser

java - 如何在进程终止时执行操作?

c - 使用管道在两个进程之间连续传递数据