我想通过终端将SIGQUIT发送到我的程序。 首先,什么是SIGQUIT信号?ctrl + C还是其他? 其次,我如何捕获该信号以打印一些消息 (我在谈论linux)
答案 0 :(得分:-1)
SIGQUIT
通常用于终止进程并创建核心转储。
发送SIGQUIT
的默认按键是 Control-\ 。您也可以使用
kill -QUIT <pid>
如果PID为负,则将正值用作进程组ID,并将信号发送到组中的所有进程。
Control-C 发送SIGINT
。
键盘生成的信号被发送到整个前台处理组。因此,如果您的程序派生了孩子,则键盘信号将发送给所有孩子。
如果您希望程序对该信号进行其他操作,请使用signal(3)
或sigaction(2)
函数为其分配信号处理程序函数。
如果在分叉之前建立处理程序,则它们的子级将继承处理程序。但是,如果他们调用exec
来运行新程序,则信号处理程序将在该进程中恢复为默认值(因为新程序中不存在处理程序功能)。