这篇主要记录 timer_create()函数:(摘自http://linux.die.net/man/2/timer_create)
#include <signal.h> #include <time.h> int timer_create(clockid_t clockid, struct sigevent *sevp, timer_t *timerid);Link with -lrt .
定时器应用实例:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <signal.h>
static int count;
void handle (sigval_t v)
{
count++;
printf("count:%d v.sival_int:%d\n",count, v.sival_int);
return;
}
int main (void)
{
timer_t tid;
struct sigevent se;
struct itimerspec ts, ots;
memset (&se, 0, sizeof (se));
se.sigev_notify = SIGEV_THREAD;
se.sigev_notify_function = handle;
se.sigev_value.sival_int = 1;
if (timer_create (CLOCK_REALTIME, &se, &tid) < 0)
{
perror ("timer_creat");
return -1;
}
puts ("timer_create successfully.");
ts.it_value.tv_sec = 1;
ts.it_value.tv_nsec = 0;
ts.it_interval.tv_sec = 1;
ts.it_interval.tv_nsec = 0;
if (timer_settime (tid, TIMER_ABSTIME, &ts, &ots) < 0)
{
perror ("timer_settime");
return -1;
}
while(1)
{
sleep (10);
}
}