linux 内核模块 定时器,linux内核定时器__backup_timer_hour_struct_定时器_模块__169IT.COM...
我做的程序需要两个定时器,一个用于自动备份,一个用于自动清理所以我觉得用alarm()的话,统一发送SIG_ALRM信号是不行的,所以我采用了struct timer_list和add_timer机制,但是发现要包含linux/timer.h,所以不得不改用模块编程(正好可以深入一下内核),可是发现在内核里包含time.h并调用localtime(),mktime()等函数都不行,后来又改包含linux/time.h,发现那个里面的函数跟time.h不一样,请各位指点一下怎样做。
另外,我对内核模块的编译也很迷糊,希望各位大侠可以耐心指点一下。不胜感谢。我的模块代码和makefile如下,请指正:
#include
#include
#include
#include
#include
static int backup_time=0; //模块参数,自动备份时间
static int clean_time=0; //模块参数,自动清理时间
struct timer_list backup_timer[2]; //全局变量,两个计时器
int DB_BACKUP()
{
return 0;
}
int DB_CLEAN()
{
return 0;
}
//自动备份函数
void auto_backup(unsigned long data)
{
struct timeval hour;
hour.tv_sec=86400;
hour.tv_usec=0;
int jiffies_t=tvtojiffies(&hour);
//设置第一个计时器
backup_timer[0].expires=jiffies_t;
backup_timer[0].data=1;
backup_timer[0].function=DB_BACKUP;
add_timer(&backup_timer[0]);
//实现备份功能
DB_BACKUP();
return;
}
//自动清理
void auto_clean(unsigned long data)
{
struct timeval hour;
hour.tv_sec=86400;
hour.tv_usec=0;
int jiffies_t=tvtojiffies(&hour);
//设置自动清理定时器
backup_timer[1].expires=jiffies_t;
backup_timer[1].data=0;
backup_timer[1].function=DB_CLEAN;
add_timer(&backup_timer[1]);
DB_CLEAN();
return;
}
//初始化两个定时器
int set_backup_timer()
{
printk(KERN_ALERT "Auto Backup:%d,Auto Clean:%d",backup_time,clean_time);
struct tm tm_v;
time_t time1,time2;
struct timeval hour;
hour.tv_usec=0;
time1=time(NULL); //姹傚嚭褰撳墠鏃堕棿
memcpy((char *)&tm_v,(char *)localtime(&time1),sizeof(struct tm));
tm_v.tm_min=0;
tm_v.tm_sec=0; //鍚屼笂
tm_v.tm_hour=backup_time;
time2=mktime(&tm_v);
if((hour.tv_sec=difftime(time2,time1))
linux 内核模块 定时器,linux内核定时器__backup_timer_hour_struct_定时器_模块__169IT.COM...相关推荐
- linux内核模块实验,linux内核模块实验(2学时)
第一个内核模块实验 一:预习要求: (1 )做本实验之前,请复习相关内核模块知识. (2 )请了解内核模块的编写.编译及安装与卸载方法. (3 )请学习内核打印函数printk() 的用法. (4 ) ...
- linux内核模块编写,Linux内核模块编程
1 总体设计思路 Linux内核是单体式结构,相对于微内核结构而言,其运行效率高,但是系统的可维护性和可扩展性较差.为此,Linux提供了内核模块(module)机制,它不仅可以弥补单体式内核相对于微 ...
- linux 内核模块开发,Linux内核模块开发(笔记)
Linux内核模块开发(笔记) 作者:扶凯 来源: 扶凯 时间:2011-11-21 00:21:11 人气:249 评论:0 标签: 内核 个人笔记..在不放过来都快找不到了.有空还得好好整理一下了 ...
- linux内核模块实验,linux内核模块实验(2学时).doc
第一个内核模块实验 一: 预习要求: ( 1 ) 做本实验之前,请复习相关内核模块知识. ( 2 ) 请了解内核模块的编写.编译及安装与卸载方法. ( 3 ) 请学习内核打印函数 printk() 的 ...
- linux内核模块签名,linux内核模块签名
make binrpm-pkg 模块签名和debuginfo同时开启会出错 模块签名是在mod_install的时候,但后续在find-debuginfo.sh中debugedit又会修改文件,导致前 ...
- linux 内核模块 proc,Linux 内核模块 proc文件系统.pdf
Linux内核模块 proc文件系统 Linux内核模块 § 内核模块是内核的扩展,它供了在内核运 行过程中动态加载的特性. § 模块被加载进系统后,就在内核态下运行了, 成了内核的一部分,可以读 ...
- 怎么在Linux内核模块加打印,在ARM-linux上实现4G模块PPP拨号上网
在ARM平台上实现4G模块的PPP拨号上网,参考网上的资料和自己的理解,从一无所知到开发完成花了一周多.最后看到ARM板ping通www.baidu.com时甚是高兴,现将此过程整理如下.当然,除此之 ...
- linux 内核模块开发,linux内核模块开发(示例代码)
一,内核模块功能: 让内核文件(zImage或bzImage)本身并不包含某组件,而是在该 组件需要被使用的时候,动态地添加到正在运行的内核中 二,内核模块安装和卸载 加载:insmod (insmo ...
- Linux内核无法放到Ubuntu中,无法通过Linux内核模块(Ubuntu)在内核内存中写入
我试图通过内核模块在虚拟机(使用VirtualBox)中覆盖内核内存(Linux 2.6.31,Ubuntu 9.10)中的某些部分. 每当我这样做时,我都会收到此错误 [27154.303726] ...
- Linux 内核模块ko在内核源码外部编译的方法
前言 默认Linux 内核驱动,可以模块编译为 *.ko 文件,不编译进内核 默认开发Linux 内核驱动,驱动一般放在Linux 内核源码中,如 drivers 目录 本篇尝试在 Linux ker ...
最新文章
- SAP Commerce(SAP Hybris)学习资料汇总
- Doxygen for C++使用说明——注释代码一
- 华为6x手机计算机软件没有了,只用一招,教你将华为手机变成电脑,这波操作没几个人知道...
- 20155117王震宇 2006-2007-2 《Java程序设计》第5周学习总结
- mysql安装完只有黑框_MySQLMySQL的安装及安装中存在的问题
- a超链接之返回顶部的两种实现方法
- 为什么程序员老在改 Bug,就不能一次改好吗?
- jQuery Validate 表单验证插件----Validate简介,官方文档,官方下载地址
- linux 内存管理_真香!Linux 原来是这么管理内存的
- 2014520420145212信息安全系统实验三报告
- Windows中的iTunes Setup Assistant驱动程序错误修复
- 求曲线面积的原理(微积分入门)
- python期货程序化开发_使用文华财经进行期货程序化真的很low,自己编程才是正途...
- 计算机硬件大型作业报告,计算机硬件技术大作业报告 .doc
- 爬虫学习:基本库的使用
- Android使用串口打印机打印图片方法
- 可视化入门:从 0 到 1 开发一个图表库
- 访问虚拟机Linux服务打不开页面
- 数据结构(java版)SortedSeqList(排序顺序表)
- 前端智能化实践(附:D2 前端技术论坛 PPT 合集)
热门文章
- vue学习笔记-8-循环结构
- Ajax学习笔记-运行原理及实现-2
- 注解与 xml 实现aop哪种好_Spring 从入门到入土——AOP 就这么简单!| 原力计划
- python word处理_Python 处理word期间遇到的问题
- c语言自学的代码表示,【图片】c语言初级代码练习自学【编程吧】_百度贴吧...
- 唤醒屏幕_屏幕保护程序被困在Mac上?如何解决它
- 服务器账号永不过期,linux下如何设置用户密码永不过期_网站服务器运行维护
- 2015年1月c语言程序设 第二版,2015年电大1253+C语言程序设计A(2010年1月)小抄参考.doc...
- php公众号失物招领系统,【服务】微信公众平台『失物招领』功能上线
- python中arcsec_python – 更好的方法来计算Skyfield中两个物体的明显角度分离?