gpt4 book ai didi

c - 信号的范围是什么?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:05:16 26 4
gpt4 key购买 nike

信号安装后的范围是什么??

例如,如果我在一个名为 A 的函数中有以下代码:

sa.sa_handler = &handle_manager_bd;
sa.sa_flags = SA_NODEFER | SA_RESTART;
sigemptyset(&my_mask);
sa.sa_mask = my_mask;
sigaction(SIGUSR1, &sa, NULL);

如果在此之后我调用 B,这是同一程序中的另一个函数,该进程将获得信号并执行 handle_manager_bd 指定的操作,对吗??

我想了解的另一个示例如下:如果我在函数 A 之前和之后安装了处理程序,我将调用函数 C,该函数包含在头文件中,如 "c.h" 由包含 A 的程序包含 #include "c.h",如果我不在函数 C 中安装信号处理程序,信号将被识别,因为我已经在 A 中安装了它或者我应该像对 A 所做的那样,将上面的代码再次放入函数 C 中吗?

最佳答案

信号有进程作用域。一旦你安装了一个处理程序,它就会一直有效,直到

  • 您通过再次调用 sigaction 将其删除
  • 调用处理程序并设置 SA_RESETHAND 标志

关于c - 信号的范围是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48233173/

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