alarm函数
Posted castor-xu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了alarm函数相关的知识,希望对你有一定的参考价值。
这个函数是设置一个定时器,在接下来的某个时刻该定时器会超时,发生超时后,产生SIGALRM信号。
产生信号后,进程的行为分两种情况:
1. 忽略或者不捕获此信号
终止调用该alarm函数的进程
2. 捕获此信号
根据信号处理程序采取动作
测试代码:
1 #include <signal.h> 2 #include <stdio.h> 3 #include <stdlib.h> 4 #include <unistd.h> 5 6 #define USE_ALARM 7 8 #ifdef USE_ALARM 9 static int x; 10 static void sig_alarm(int signo) 11 { 12 printf("alarm! -- %d ",x++); 13 } 14 #endif 15 16 int main(int argc,char** argv) 17 { 18 #ifdef USE_ALARM 19 if(signal(SIGALRM,sig_alarm)==SIG_ERR) 20 { 21 printf("error 1 "); 22 exit(1); 23 } 24 #endif 25 alarm(1); 26 while(1) 27 { 28 alarm(1); 29 pause(); 30 } 31 return 0; 32 }
分别不使用宏定义USE_ALARM,执行效果如下:
以上是关于alarm函数的主要内容,如果未能解决你的问题,请参考以下文章