在linux下如果对定时要求不太精确的话,使用
alarm()和signal()就行了,但是如果想要实现精度较高的定时功能的话,就要使用setitimer函数。
int setitimer(int which, const struct itimerval *
value, struct itimerval *ovalue);
ITIMER_VIRTUAL: -以该进程在
用户态下花费的时间来计算,它送出SIGVTALRM信号。
setitimer()第一个参数which指定
定时器类型(上面三种之一);第二个参数是结构itimerval的一个实例;第三个参数可不做处理。
it_interval指定间隔时间,it_value指定初始定时时间。如果只指定it_value,就是实现一次定时;如果同时指定 it_interval,则超时后,系统会重新初始化it_value为it_interval,实现重复定时;两者都清零,则会清除
定时器。