linux下定时器struct itimerval的使用

     struct itimerval *new_value,其定义如下:

struct itimerval {

struct timeval it_interval;  /*next value*/

struct timeval it_value;/*current value*/

};

struct timeval {

long tv_sec;/*seconds*/

lonng tv_usec/*microseconds*/

};;

该结构体要配合函数setitimer使用。函数原型为

int setitimer(int which, const struct itimerval *new_value,struct itimerval *old_value);

其中which参数表示类型,可选的值有:

ITIMER_REAL:以系统真实的时间来计算,它送出SIGALRM信号。

ITIMER_VIRTUAL:以该进程在用户态下花费的时间来计算,它送出SIGVTALRM信号。
ITIMER_PROF :以该进程在用户态下和内核态下所费的时间来计算,它送出SIGPROF信号。
old_value的值一般为NULL。

settimer工作机制是,先对it_value倒计时,当it_value为零时触发信号,然后重置为it_interval,继续对it_value倒计时,一直这样循环下去。


版权声明:本文为u012023532原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。