setitimer定时器

 

#include <sys/select.h>
#include <sys/time.h>
#include <stdio.h>
#include <unistd.h>
#include <signal.h>

int n = 0;
struct itimerval value;
void timefunc(int sig)
{
fprintf(stderr, "timer[%d]\n", n++);
if (n > 5)
{
getitimer(ITIMER_REAL, &value);
value.it_value.tv_sec = 0;
value.it_value.tv_usec = 0;
value.it_interval.tv_sec = 0;
value.it_interval.tv_usec = 0;
setitimer(ITIMER_REAL, &value, NULL);
fprintf(stderr, "time over.\n");
}
}

void main()
{
value.it_value.tv_sec = 2;
value.it_value.tv_usec = 500000;
value.it_interval.tv_sec = 1;
value.it_interval.tv_usec = 500000;

signal(SIGALRM, timefunc);
setitimer(ITIMER_REAL, &value, NULL);
while(1)
{
fprintf(stderr, ".");
sleep(1);
};
}



 

posted @ 2012-03-15 19:53  田涛@武汉  阅读(215)  评论(0编辑  收藏  举报