《基于Linux平台实现定时器功能》
1.demo
static void sigHandFun(int signum) { struct itimerval itv; itv.it_interval.tv_sec = 5; itv.it_interval.tv_usec = 0; itv.it_value.tv_sec = 0; itv.it_value.tv_usec = 0; setitimer(ITIMER_REAL, &itv, NULL); } static int init_timer_to_set_wake_lock(void) { struct itimerval itv; if (SIG_ERR == signal(SIGALRM, sigHandFun)) { perror("signal"); return -1; } itv.it_interval.tv_sec = 5; itv.it_interval.tv_usec = 0; itv.it_value.tv_sec = 5; itv.it_value.tv_usec = 0; if (-1 == setitimer(ITIMER_REAL, &itv, NULL)) { perror("setitimer"); return -1; } return 0; }
demo中的定时器5秒定时后,会调用回调函数,然后就关闭定时器。如果要循环定时器,把回调函数里面的代码删掉就行了。
浙公网安备 33010602011771号