我做的程序需要两个定时器,一个用于自动备份,一个用于自动清理所以我觉得用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...相关推荐

  1. linux内核模块实验,linux内核模块实验(2学时)

    第一个内核模块实验 一:预习要求: (1 )做本实验之前,请复习相关内核模块知识. (2 )请了解内核模块的编写.编译及安装与卸载方法. (3 )请学习内核打印函数printk() 的用法. (4 ) ...

  2. linux内核模块编写,Linux内核模块编程

    1 总体设计思路 Linux内核是单体式结构,相对于微内核结构而言,其运行效率高,但是系统的可维护性和可扩展性较差.为此,Linux提供了内核模块(module)机制,它不仅可以弥补单体式内核相对于微 ...

  3. linux 内核模块开发,Linux内核模块开发(笔记)

    Linux内核模块开发(笔记) 作者:扶凯 来源: 扶凯 时间:2011-11-21 00:21:11 人气:249 评论:0 标签: 内核 个人笔记..在不放过来都快找不到了.有空还得好好整理一下了 ...

  4. linux内核模块实验,linux内核模块实验(2学时).doc

    第一个内核模块实验 一: 预习要求: ( 1 ) 做本实验之前,请复习相关内核模块知识. ( 2 ) 请了解内核模块的编写.编译及安装与卸载方法. ( 3 ) 请学习内核打印函数 printk() 的 ...

  5. linux内核模块签名,linux内核模块签名

    make binrpm-pkg 模块签名和debuginfo同时开启会出错 模块签名是在mod_install的时候,但后续在find-debuginfo.sh中debugedit又会修改文件,导致前 ...

  6. linux 内核模块 proc,Linux 内核模块 proc文件系统.pdf

    Linux内核模块 proc文件系统 Linux内核模块 §  内核模块是内核的扩展,它供了在内核运 行过程中动态加载的特性. §  模块被加载进系统后,就在内核态下运行了, 成了内核的一部分,可以读 ...

  7. 怎么在Linux内核模块加打印,在ARM-linux上实现4G模块PPP拨号上网

    在ARM平台上实现4G模块的PPP拨号上网,参考网上的资料和自己的理解,从一无所知到开发完成花了一周多.最后看到ARM板ping通www.baidu.com时甚是高兴,现将此过程整理如下.当然,除此之 ...

  8. linux 内核模块开发,linux内核模块开发(示例代码)

    一,内核模块功能: 让内核文件(zImage或bzImage)本身并不包含某组件,而是在该 组件需要被使用的时候,动态地添加到正在运行的内核中 二,内核模块安装和卸载 加载:insmod (insmo ...

  9. Linux内核无法放到Ubuntu中,无法通过Linux内核模块(Ubuntu)在内核内存中写入

    我试图通过内核模块在虚拟机(使用VirtualBox)中覆盖内核内存(Linux 2.6.31,Ubuntu 9.10)中的某些部分. 每当我这样做时,我都会收到此错误 [27154.303726] ...

  10. Linux 内核模块ko在内核源码外部编译的方法

    前言 默认Linux 内核驱动,可以模块编译为 *.ko 文件,不编译进内核 默认开发Linux 内核驱动,驱动一般放在Linux 内核源码中,如 drivers 目录 本篇尝试在 Linux ker ...

最新文章

  1. SAP Commerce(SAP Hybris)学习资料汇总
  2. Doxygen for C++使用说明——注释代码一
  3. 华为6x手机计算机软件没有了,只用一招,教你将华为手机变成电脑,这波操作没几个人知道...
  4. 20155117王震宇 2006-2007-2 《Java程序设计》第5周学习总结
  5. mysql安装完只有黑框_MySQLMySQL的安装及安装中存在的问题
  6. a超链接之返回顶部的两种实现方法
  7. 为什么程序员老在改 Bug,就不能一次改好吗?
  8. jQuery Validate 表单验证插件----Validate简介,官方文档,官方下载地址
  9. linux 内存管理_真香!Linux 原来是这么管理内存的
  10. 2014520420145212信息安全系统实验三报告
  11. Windows中的iTunes Setup Assistant驱动程序错误修复
  12. 求曲线面积的原理(微积分入门)
  13. python期货程序化开发_使用文华财经进行期货程序化真的很low,自己编程才是正途...
  14. 计算机硬件大型作业报告,计算机硬件技术大作业报告 .doc
  15. 爬虫学习:基本库的使用
  16. Android使用串口打印机打印图片方法
  17. 可视化入门:从 0 到 1 开发一个图表库
  18. 访问虚拟机Linux服务打不开页面
  19. 数据结构(java版)SortedSeqList(排序顺序表)
  20. 前端智能化实践(附:D2 前端技术论坛 PPT 合集)

热门文章

  1. vue学习笔记-8-循环结构
  2. Ajax学习笔记-运行原理及实现-2
  3. 注解与 xml 实现aop哪种好_Spring 从入门到入土——AOP 就这么简单!| 原力计划
  4. python word处理_Python 处理word期间遇到的问题
  5. c语言自学的代码表示,【图片】c语言初级代码练习自学【编程吧】_百度贴吧...
  6. 唤醒屏幕_屏幕保护程序被困在Mac上?如何解决它
  7. 服务器账号永不过期,linux下如何设置用户密码永不过期_网站服务器运行维护
  8. 2015年1月c语言程序设 第二版,2015年电大1253+C语言程序设计A(2010年1月)小抄参考.doc...
  9. php公众号失物招领系统,【服务】微信公众平台『失物招领』功能上线
  10. python中arcsec_python – 更好的方法来计算Skyfield中两个物体的明显角度分离?