linux内核运用timer_list 结构体当作定时器。
#include “linux/timer.h”
#include “linux/module.h”
//不加这句话,尽管不影响功用,但“有时候”程序履行时会打印过错,相似 Disabling lock debugging
//due to kernel taint 之类的话
struct timer_list tm;
static int num;
static void func()
{
num++;
mod_timer(&tm,jiffies+1*HZ);
//timer一旦超时,就会履行fuc函数,然后永久的休眠,
//所以假如没有这mod_timer,hello world 只会履行一次,也便是timer第一次超不时履行的那次。
//mod_timer能够激活timer。假如你没有add_timer(),激活也没用
printk(“hello,world \n ,%d”,num);
}
static int timer_init(void)
{
init_timer(&tm); //初始化定时器,有必要在所有下面仿制操作前进行定时器初始化
tm.expires = jiffies +1*HZ; //超时1秒,履行function
tm.function = func; //超时后履行的函数
add_timer(&tm); //将定时器参加定时器等候行列中
return 0;
}
static void timer_destory(void)
{
del_timer(&tm);
printk(“remove timer\n”);
}
声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/news/guandian/263378.html