【问题标题】:Does a parent and child still share signal controls if a child overlays image with exec()?如果孩子用 exec() 覆盖图像,父母和孩子是否仍然共享信号控制?
【发布时间】:2010-11-01 05:14:30
【问题描述】:

我认为这个问题说明了一切。我想在孩子执行另一个程序后向孩子发送信号,但我不确定在图像被破坏和覆盖后孩子和父母是否仍然共享信号。我相信父母和孩子仍然共享信号和文件,这是真的吗?

【问题讨论】:

标签: c unix signals


【解决方案1】:

exec 之后,子进程仍将拥有相同的 pid,您可以向该 pid 发送信号,但任何存在的处理程序都消失了。孩子必须自己设置显式处理程序。

【讨论】:

  • 谢谢,说得通,我可以一次向所有孩子发送信号吗?
  • 有一个称为“进程组”的概念,它解决了许多与信号有关的问题(例如“当你点击 ^C 时哪个进程得到 SIGINT”)。如果您的孩子都在一个进程组中,您可以使用killpg() 将他们全部杀死。实际上,这与您自己循环遍历列表之间没有任何真正的区别。
  • 非常感谢,我认为这会有所帮助。如果我无法计算出 2 个不同的组,我会尝试遍历所有组。
猜你喜欢
  • 2020-08-07
  • 1970-01-01
  • 2021-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多