日期:2014-05-16  浏览次数:20872 次

linux下该如何取消用setitimer设置的定时器呢?
void init_sigaction(void)
{
    struct sigaction tact;
    tact.sa_handler = drawFrame_proc;
    tact.sa_flags = 0;
    sigemptyset(&tact.sa_mask);
    sigaction(SIGALRM, &tact, NULL);
}

void init_time()
{
     struct itimerval value;
     value.it_value.tv_sec = 0;
     value.it_value.tv_usec = 40000;
     value.it_interval = value.it_value;
     setitimer(ITIMER_REAL, &value, NULL);
 }

请问该如何取消用setitimer设置的定时器呢。谢谢!
------解决方案--------------------
setitimer设置it_interval和it_value为零。
------解决方案--------------------
void uninit_time() 

    struct itimerval value; 
    value.it_value.tv_sec = 0; 
    value.it_value.tv_usec = 0; 
    value.it_interval = value.it_value; 
    setitimer(ITIMER_REAL, &value, NULL);