linux C++ 定时器代码:#include
#include
#include
using namespace std;
/*
union sigval
{
int sival_int; //integer value
void *sival_ptr; //pointer value
};
struct sigevent
{
int sigev_notify; //notification type
int sigev_signo; //signal number
union sigval sigev_value; //signal value
void (*sigev_notify_function)(union sigval);
pthread_attr_t *sigev_notify_attributes;
};
*/
void func(union sigval v){
cout <
}
int main(){
timer_t timer;
struct sigevent evp;
memset(&evp, 0, sizeof(evp));
evp.sigev_value.sival_ptr = &timer;
evp.sigev_notify = SIGEV_THREAD;
evp.sigev_notify_function = func;
evp.sigev_signo = 0;
timer_create(CLOCK_REALTIME, &evp, &timer);
// it_value 一定要设置,不能为0
struct itimerspec ts;
ts.it_interval.tv_sec = 3;
ts.it_interval.tv_nsec = 0; //200ms
ts.it_value.tv_sec = 1;
ts.it_value.tv_nsec = 0; //200ms
timer_settime(timer, TIMER_ABSTIME, &ts, NULL);
while(1);
return 0;
}