仔细想想,我想信号会被发送到操作系统,程序会继续进行,即使信号在操作系统端仍然挂起。有人能确认吗?
kill(this_process, signum);
printf("will line this run in any reality of the multi-verse?");
printf("or should I go to sleep?");
sleep(10);
来自kill()
的POSIX规范
如果pid的值导致为发送进程生成sig,并且如果调用线程未阻止sig并且没有其他线程阻止sig或正在
sigwait()
函数中等待sig,则在kill()
返回之前,应向发送线程发送sig或至少一个挂起的未阻止信号。
因此,如果在调用kill()
时进程没有其他挂起的信号,则必须立即传递您发送的信号。但是,如果有其他信号挂起,则可以对该信号进行排队,并立即发送较早的信号。