为什么我的信号处理程序不起作用?

偏执狂

我想在Linux上处理信号SIGTSTP(18)。这是我的代码:

void handler(int signum){
    printf("Signal %d has tried to stop me.", signum);
}

int main(void){
    struct sigaction act;
    sigset_t mask;

    act.sa_handler = handler;
    act.sa_flags = 0;

    sigemptyset(&mask);
    sigaddset(&mask, SIGTSTP);
    sigprocmask(SIG_SETMASK, &mask, NULL);

    sigaction(SIGTSTP, &act, NULL);

    pause();

}

当我以这种方式从另一个终端发送信号时:

$ kill -18 PID

handler()函数无法运行。我尝试在sigaction()的调用中将SIGTSTP替换为18。这没用。

有任何想法吗?谢谢你的时间。

nullptr

您故意通过以下方式阻止将其交付SIGTSTP给流程

sigaddset(&mask, SIGTSTP);
sigprocmask(SIG_SETMASK, &mask, NULL);

sigprocmaskSIG_SETMASK设置掩码以阻止信号。删除对的呼叫sigprocmask,信号便会发出。

要做的另一件事是act在填写之前将其清零

memset(&act, 0, sizeof(act));

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么我的信号处理程序不起作用?

来自分类Dev

Swift GCD:为什么信号处理程序在功能中不起作用

来自分类Dev

当我具有触摸事件处理程序时,为什么我的鼠标事件处理程序不起作用?

来自分类Dev

为什么XUL负载处理程序不起作用?

来自分类Dev

为什么img上的onclick处理程序不起作用?

来自分类Dev

为什么我的CMD /批处理游戏不起作用?

来自分类Dev

为什么我的python程序不起作用?

来自分类Dev

为什么我的引导程序下拉列表不起作用?

来自分类Dev

为什么我的C ++程序不起作用?

来自分类Dev

为什么我的python程序不起作用?

来自分类Dev

为什么我的猴子修补程序不起作用?

来自分类Dev

为什么我的JavaScript验证程序不起作用?

来自分类Dev

为什么我的 for 循环不起作用?阶乘程序

来自分类Dev

为什么我的秒表程序不起作用?

来自分类Dev

为什么多处理不起作用?

来自分类Dev

Python GTK信号处理程序不起作用

来自分类Dev

为什么信号功能无法调用我的信号处理程序?

来自分类Dev

为什么该程序不起作用?

来自分类Dev

为什么程序不起作用?

来自分类Dev

为什么信号灯不起作用?

来自分类Dev

为什么陷阱信号在Shell函数中不起作用?

来自分类Dev

为什么我的printf不起作用?

来自分类Dev

为什么我的列表不起作用?

来自分类Dev

为什么我的for循环不起作用?

来自分类Dev

为什么我的代码不起作用?

来自分类Dev

为什么getchar()对我不起作用?

来自分类Dev

为什么我的排序不起作用?

来自分类Dev

为什么我的递归不起作用?

来自分类Dev

为什么我的线程不起作用?

Related 相关文章

热门标签

归档