【发布时间】:2023-03-28 12:57:02
【问题描述】:
我对 kill(pid, signal) 函数的工作原理有点困惑——我相信它是异步的,所以信号可能要等到执行了更多指令之后才会到达。我的问题是,如果您调用 kill(pid, signal) 然后在下一行返回(如下所示),您是否保证在程序终止之前将捕获并处理信号,或者是否可以在不处理的情况下退出如果我们在 kill 函数完成之前运行“return 0”会发出什么信号?
kill(pid, SIGUSR1);
return 0;
【问题讨论】:
-
你是在暗示
pid这里是进程本身的 pid 吗?还是一些子进程? -
手册页显示“成功时(至少发送了一个信号),返回零。”发送是有保证的,但在返回之前不能保证(很可能不能)接收部分对该信号的接收和操作。