- 参考的链接如下:
- 看下面的 demo:
编译链接并运行后的结果如下:
(1)kill(getppid(), SIGALRM) 函数的使用:
kill 函数是用来传送信号给指定的进程,kill(getppid(), SIGALRM) 函数是用来传送 SIGALRM 信号给 pid 为 getppid() 的指定进程,在本程序中就是子进程给父进程发送 SIGALRM 信号
(2)signal(SIGALRM, ouch); 表示给当前进程注册 SIGALRM 信号处理代码,如果收到 SIGALRM 信号,就会去执行 ouch 函数。
- 上面是使用 kill 函数让子进程给父进程发送 SIGALRM信号,但一般是使用 alarm 函数来设置定时器,时间到就会产生 SIGALRM 信号(调用 alarm 函数的进程在定时器到的时候会收到 SIGALRM 信号)。
编译链接运行后的结果如下:
主程序等待5秒后,收到了 alarm 定时到点的信号,而主程序也已经注册了 alarm 信号的处理函数。