Linux ---- 定时器setitimer

在编程的时候,很多时候会用到定时器,定时检测某个状态是否发生变化并进行处理。这时候,就会用到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中。
posted @   Happinesspill  阅读(568)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示