gpt4 book ai didi

c - C语言中如何用fork()终止多个进程?

转载 作者:行者123 更新时间:2023-11-30 21:08:39 25 4
gpt4 key购买 nike

我正在做一个关于 Unix 进程的项目,使用语言 C。该项目是使用 wait(函数 fork ())exit () 来表示进程树。

我的程序的输出应该是我:

  1. 父亲:PID1 - 你好
  2. Children1:PID2 - 你好
  3. GrandChildren1.1:PID3 - 你好和再见
  4. GrandChildren1.2:PID4 - 你好和再见
  5. child 1:PID2 - 再见
  6. Children2:Pid6 - 你好
  7. GrandChildren2.1:Pid7 - 你好和再见
  8. Children2:Pid6 - 再见
  9. 父亲:PID1 - 再见

这个输出明白了。我将以下代码安排到流程的开始,但没有安排它们如何完成流程:

main() {

if(fork())
{
// 1
printf("1. Father:Pid1 - Hello\n");
if(fork())
{
// 2
printf("2. Children1:Pid2 - Hello\n");
if(fork())
{
// 4
printf("3. GrandChildren1.1:Pid3 - Hello and GoodBye\n");
}
else{}

wait(1);

if (fork())
{
printf("3. GrandChildren1.2:Pid4 - Hello and GoodBye\n");
}
else {}
}
else
{
printf("4. Children1:Pid2 - GoodBye\n");
}
}
else{
if(fork())
{
// 3}
printf("6. Children2:Pid6 - Hello\n");
if (fork())
{
printf("6. GrandChildren2.1:Pid7 - Hello and GoodBye\n");
}
else{}
}
else{}
}

pause();
return 0;
}

这个输出明白了。我将以下代码安排到流程的开始,但没有安排它们如何完成流程:

例如,不知道如何完成PID2,看到当你打印2个孙子时,我必须这样做。

怎么可能?

问候

最佳答案

我不确定我是否明白你的问题,无论如何,根据我的理解,你需要规范执行流程。有以下几种方法:

wait(),waitpid(), kill(), sigaction()

您可以通过查看它们的手册页来了解它们的工作原理。

关于c - C语言中如何用fork()终止多个进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37333858/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com