Linux C++Timer(用信号量实现)

来源:互联网 发布:网络推广代理合同 编辑:程序博客网 时间:2024/06/05 10:47

Linux C++Timer

#include <stdio.h>#include <time.h>#include <sys/time.h>#include <stdlib.h>#include <signal.h>static int count = 0;static struct itimerval oldtv;void set_timer(){    struct itimerval itv;//结构体的定义在Timer.h    itv.it_interval.tv_sec = 1;    itv.it_interval.tv_usec = 0;    itv.it_value.tv_sec = 1;    itv.it_value.tv_usec = 0;    setitimer(ITIMER_REAL, &itv, &oldtv);//向内核注册一个timer信号}void signal_handler(int m){    count ++;    printf("%d\n", count);}int main(){/*内核收到setitemer时触发的信号,会激活SIGALRMsignal这个函数是信号量注册,只要收到SIGALRM就会调用signal_handler*/    signal(SIGALRM, signal_handler);    set_timer();    while(count < 10000);    exit(0);    return 1;}
原创粉丝点击