kill()在C中立即起作用吗?或者下一条线路有可能运行吗



仔细想想,我想信号会被发送到操作系统,程序会继续进行,即使信号在操作系统端仍然挂起。有人能确认吗?

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()时进程没有其他挂起的信号,则必须立即传递您发送的信号。但是,如果有其他信号挂起,则可以对该信号进行排队,并立即发送较早的信号。

相关内容

最新更新