我有一个程序可以捕捉任何终止信号。目前它所做的只是捕获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/