Linux C 定时器 篇(三)

这篇主要记录 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);   
 }
  }   

你可能感兴趣的:(c,linux)