我有一个程序可以捕捉任何终止信号。目前它所做的只是捕获Ctrl+C。除了Ctrl+C之外,我还希望能够捕获Ctrl+Z和Ctrl++。下面是我的部分代码。

if (signal(SIGINT, SIG_IGN) == SIG_ERR)
    fprintf(stderr,"Error: Can't catch SIGINT\n");

if (signal(SIGTERM, SIG_IGN) == SIG_ERR)
    fprintf(stderr,"Error: Can't catch SIGTERM\n");

// do stuff

要捕获Ctrl+Z和Ctrl++,还需要实现哪些信号?是什么引起的?提前谢谢。

最佳答案

按Ctrl+Z键可提升SIGTSTP。Ctrl+\raises SIGQUIT。
我不知道是否有任何键组合会引发SIGTERM,但您当然可以使用kill -TERM <pid><pid>替换为进程ID来发送它(或者只使用kill <pid>;SIGTERM是kill的默认信号)
注意,你不能抓住SIGSTOP或SIGKILL。

关于c - 捕获所有将停止程序的信号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40031542/

10-14 05:29