我已经google了很多,并且没有发现关于如何使用用户定义信号(SIGUSR1 / SIGUSR2)的CLEAR指令。
上下文:我正在尝试在运行过程中发送信号,以便一旦发送信号,信号处理程序将打印一条语句,告诉用户信号已被捕获。我试图使用如下所示的信号处理程序。
void signalHandler(int signalNum) {
if (signalNum == SIGUSR1) {
printf("Caught SIGUSR1 signal.\n");
}
}
/* Call in main as follows */
signal(SIGUSR1, signalHandler);
根据我的理解,可以通过使用我尝试过的raise()函数在进程中引发信号(我正在尝试执行以下操作,不使用forking或使用后续的子/父进程)。当采用我上面显示的方法时,程序从不执行信号处理函数内的任何代码,即使它是if语句之前的print语句。
在此之后,我也尝试过:
signalHandler(raise(SIGUSR1));
原谅我的方法是否被禁止,我来自Python背景。谢谢!
编辑:我需要程序自动发出信号,捕捉信号,打印信息然后停止执行。不使用CLI。