gpt4 book ai didi

c - 从父级向特定子级发送信号

转载 作者:行者123 更新时间:2023-11-30 16:52:50 25 4
gpt4 key购买 nike

我有一个包含一个父进程和两个子进程的树进程,我想发送一个信号,并且只有 child2 接收它,为 child2 创建一个处理程序,并在处理程序中收到它时显示一条消息。

pid_t pid, pid1, pid2;

if((pid=fork())==0)
printf("child1");
else if((pid2=fork())=0)
printf("child2);
signal(SIGUSR1, handler); //EDITED
else
printf("parent");
kill(pid2, SIGUSR1); //EDITED


void handler(int signal)
{
printf("received");

但我不知道如何仅为child2发送信号SIGUSR1

最佳答案

假设伪代码的缩进代表嵌套深度,现在原则上是正确的,但它存在计时问题:

  • 父进程可以在 child2 安装信号处理程序之前向 child2 发送信号。为了解决这个问题,您可以让父进程在 fork child2 之前安装处理程序(由子进程继承)。
  • child2 可能会在父进程发送信号之前结束,因此不会调用处理程序。如果您想看到它被调用,您可以给 child2 一些事情做,即使它只是一个 sleep(...)

关于c - 从父级向特定子级发送信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41107538/

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