我正在我的程序中执行一个进程,此进程调用exec()
函数,然后子进程调用sleep()
函数。
我想知道sleep()
函数是否发送父母可以检测到的某种信号,如果是,它会发送什么类型的信号?
答案 0 :(得分:4)
通常sleep()
是通过调用alarm(2)
来实现的,{{3}}会在超时到期后安排将SIGALRM
信号传递给调用进程。
换句话说,信号在sleep
完成休眠后发送,而不是发送到父进程 - 而是处理调用sleep
的信号。父母过程不能拦截传递给孩子的信号。
答案 1 :(得分:3)
不,sleep
本身不会向父母发送任何信号,它可能会使用封面下的信号唤醒自己,但这完全是孩子的内心。
如果您想通知父母,您必须在睡觉前自己做。这可能很简单:
#include <sys/types.h>
#include <unistd.h>
#include <sys/signal.h>
:
kill (getppid(), SIGHUP);