SIGALRM
定时器终止时发送给进程的信号
POSIX兼容的平台上,SIGALRM是在定时器终止时发送给进程信号
简介
POSIX兼容的平台上,SIGALRM是在定时器终止时发送给进程信号
它们的符号常量头文件signal.h中定义。
在不同的平台上,信号的编号可能发生变化,因此需要使用符号名称。
语源
SIG是信号名的通用前缀
ALRM是alarm的缩写,即定时器。
使用
计算机程序通常使用SIGALRM作为长时间操作的超时信号,或提供一种隔一定时间间隔处理某些操作的方式。
SIGALRM通常在调用alarm(3)系统调用的整数秒之后产生。有时它被作为sleep(3)的实现;因此,不能保证可以用alarm(3)在sleep(3)调用进行中唤醒程序。
linux中的SIGALRM信号和SIGCHID信号
在进行阻塞式系统调用时,为避免进程陷入无限期的等待,可以为这些阻塞式系统调用设置定时器。Linux提供了alarm系统调用和SIGALRM信号实现这个功能。
要使用定时器,首先要安装SIGALRM信号。如果不安装SIGALRM信号,则进程收到SIGALRM信号后,缺省的动作就是终止当前进程。SIGALRM信号安装成功后,在什么情况下进程会收到该信号呢?这就要依赖于Linux提供的定时器功能。在Linux系统下,每个进程都有惟一的一个定时器,该定时器提供了以秒为单位的定时功能。在定时器设置的超时时间到达后,调用alarm的进程将收到SIGALRM信号。alarm系统调用的原型为:
#include
unsigned int alarm(unsigned int seconds);
参数说明:
1)seconds:要设定的定时时间,以秒为单位。在alarm调用成功后开始计时,超过该时间将触发SIGALRM信号。
返回值:
返回当前进程以前设置的定时器剩余秒数。
举例
编程利用SIGALRM信号实现秒定时器。
最新修订时间:2022-08-26 10:02
目录
概述
简介
语源
使用
参考资料