2012年4月1日日曜日

[C 语言] 定时器

#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;
    itv.it_interval.tv_sec = 3; // 秒
    itv.it_interval.tv_usec = 0; // 微秒
    itv.it_value.tv_sec = 1;
    itv.it_value.tv_usec = 0;
    setitimer(ITIMER_REAL, &itv, &oldtv);
}

void signal_handler(int m)
{
    count ++;
    printf("alarm handler : %d\n", count);
}

int main()
{
    signal(SIGALRM, signal_handler);
    set_timer();
    while(count < 10)
    {
        printf("main loop!\n");
        sleep(1);
    }
    exit(0);
}

0 件のコメント:

コメントを投稿