用setitimer函数和signal信号处理函数实现简单的timer的代码

来源:互联网 发布:淘宝代销产品图片搬家 编辑:程序博客网 时间:2024/04/29 02:01

真实计时器介绍,setitimer函数介绍  见点击打开链接

代码如下:

<span style="font-size:18px;"><span style="font-size:18px;">#include<time.h>#include<signal.h>#include<stdio.h>#include<stdlib.h>#include<sys/time.h>void setTimer(int seconds){               struct itimerval new_val;        new_val.it_value.tv_sec=seconds;        new_val.it_value.tv_usec=0;        new_val.it_interval.tv_sec=seconds;        new_val.it_interval.tv_usec=0;                int ret=setitimer(ITIMER_REAL,&new_val,NULL);        if(ret==-1)        {                       perror("setTimer error\n");                exit(-1);        }}void handler(int sign){time_t tt;time(&tt);srand(tt);switch(rand()%3){case 1: printf("i am 1\n");break;case 2: printf("i am 2\n");break;case 0: printf("i am 0\n");break;}}int main(void){        int seconds=3;        setTimer(seconds);        signal(SIGALRM,handler);        while(1);}</span></span>
结果:

<span style="font-size:18px;">i am 1i am 0i am 0i am 0i am 1i am 1i am 2</span>




0 0