Linux定时函数使用

具体数据结构和用法可以man setitimer查询,很简单易懂的一段英文,应该没什么难度,下面是我联系的一个小例子:

#include <stdio.h>
#include <stdlib.h>
#include <sys/time.h>
#include <signal.h>
#include <string.h>

int main()
{
    void countdown( int);
    signal( SIGALRM, countdown);

    struct itimerval new_timeset;
    memset(&new_timeset, 0, sizeof(new_timeset));
   
    new_timeset.it_interval.tv_sec = 1L;
    new_timeset.it_interval.tv_usec = 0L;
   
    new_timeset.it_value.tv_sec = 2L;
    new_timeset.it_value.tv_usec = 0L;

    if(setitimer(ITIMER_REAL, &new_timeset, NULL) == - 1)
        perror( "set timer");
    else
        while(1)
            pause();
    return 0;
}

void countdown( int signum)
{
    static int num = 10;
    printf( " %d ..", num--);
    fflush( stdout);
    if(num < 0)
    {
        printf( "DONE!\n");
        exit( 0);
    }
}

你可能感兴趣的:(数据结构,linux)