利用信号 Signal 实现定时器

2019-12-23  本文已影响0人  wjundong
#include <stdio.h>
#include <time.h>
#include <sys/time.h>
#include <stdlib.h>
#include <signal.h>
#include <unistd.h>


int count = 0;

void setTimer()
{
    struct itimerval itv, oldtv;
    // 定时器初值
    itv.it_value.tv_sec = 5;
    itv.it_value.tv_usec = 0;
    // 定时器重装值
    itv.it_interval.tv_sec = 1;
    itv.it_interval.tv_usec = 0;
    setitimer(ITIMER_REAL, &itv, &oldtv);
}

 
void sigalrmHandler(int sig)
{
    count++;
    printf("timer signal.. %d\n", count);
}


int main()
{
    signal(SIGALRM, sigalrmHandler);
    setTimer();

    while (count < 1000) {
        sleep(100);
    }

    return 0;
}
上一篇 下一篇

猜你喜欢

热点阅读