Linux 定时器(内核态)

本文详细介绍了Linux内核态的定时器使用,包括头文件引用、简单使用流程、定时器定义、初始化、时间设定及添加定时器的步骤。通过示例代码展示了如何设置一个5秒后触发的定时器,并解释了`jiffies`和`HZ`的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文参考文档

头文件以及简单使用流程

头文件: #include <linux/timer.h>

简单使用流程:

  1. struct timer_list test_timer;
  2. setup_timer(&test_timer, timer_print, 1234);
  3. test_timer.expires = jiffies + 5 * HZ;
  4. add_timer(&test_timer);

说明

1. 定义定时器 test_timer

值得注意的是,定义定时器时注意定时器为全局变量或者是通过kmalloc从堆中申请到的内存。否则定时器会在函数生命周期结束后被销毁,导致出现错误。

2. setup_timer初始化test_timer

首先来看一下setup_timer的源代码

#define setup_timer(timer, fn, data)                    \
    __setup_timer((timer), (fn), (data), 0)

#define __setup_timer(_timer, _fn, _data, _flags)      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值