在编程的时候,很多时候会用到定时器,定时检测某个状态是否发生变化并进行处理。这时候,就会用到setitimer函数了。
- 功能:设置定时器(闹钟)。可以替代alarm函数。精度微妙us,可以实现周期性定时1. 头文件
#include <sys/time.h>
2. 函数原型
int setitimer(int which, const struct itimerval *new_value, struct itimerval *old_value);
参数:
- which : 定时器以什么时间计时
ITIMER_REAL: 真实时间,时间到达,发送 SIGALRM -- 常用 ITIMER_VIRTUAL: 用户时间,时间到达,发送 SIGVTALRM ITIMER_PROF: 以该进程在用户态和内核态下所消耗的时间来计算,时间到达,发送 SIGPROF信号 - new_value: 设置定时器的属性1 struct itimerval { // 定时器结构体 2 struct timeval it_interval; // 两次定时任务之间的时间间隔 3 struct timeval it_value; // 设置定时器后多久开始执行定时任务 4 }; 5 6 struct timeval { // 时间结构体 7 time_t tv_sec; // 秒数 8 suseconds_t tv_usec; // 微秒 9 };- old_value :记录上一次的定时的时间参数,一般不使用,指定NULL - 返回值: 成功返回0,失败返回 -1 并设置错误号写入errno中。