计时器
进程可通过三种方式计时
ITIMER_REAL: 真实时间(使用者实际经历的时间) ITIMER_VIRTUAL:程序在用户态实际执行的时间
ITIMER_PROF:由该进程进入的内核处理所用时间+VIR
使用<sys/time.h>
可方便地完成上述三种时间记录
包含结构体itimerval和函数setitimer()
结构体itimerval包含两项设置
a:剩余时间
对应成员:struct timerval it_value
b:重装时间(单片机中的加法计数器重装)
对应成员:struct timerval it_interval
这两项设置都是以 (秒+微秒)的数值组合 设置时间
就是说,结构体timerval包含两项成员
a: tv_sec
b:tv_usec
都用long类型数值来填充即可
- 具体写成:
struct itimerval S;//声明一个itimerval结构S
/*设置第一次倒计时1.5s = 1s+0.5s*/
S.it_val.tv_sec = 1; // 1s
S.it_val.tv_interval = 50000; // 50000us = 0.5s
/*设置重复(第一次之后自动开始的倒计时)
倒计时1.5s = 1s+0.5s*/
S.it_interval.tv_sec = 1; // 1s
S.it_interval.tv_interval = 50000; // 50000us = 0.5s
- 完成结构体写入后,调用函数setitimer()以S的设置启动计时器
Setitimer(ITIMER_REAL,&S,NULL);
- 解释一下三个位置的参数:
1:计时器类型(见开头)
2:计时器设置(结构体指针)
3:需要用S的设置替换的结构体的指针,一般没有需要就用NULL