【发布时间】:2018-01-12 19:54:46
【问题描述】:
我安装后信号的范围是什么??
例如,如果我在一个名为 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" 这样的头文件中包含带有#include "c.h"的A的程序,如果我没有在函数C中安装信号处理程序,则信号将被识别,因为我已经将它安装在A中,或者我应该像我一样将上面的代码再次放入函数C中一个?
【问题讨论】: