Linux 内核中获取时间分析基于do_gettimeofday()

本文详细探讨了Linux内核如何通过do_gettimeofday()获取时间,包括从墙上时钟转换到jiffies值,获取绝对时间,以及如何将内核时间转化为可读的日期和时间。同时提到了内核中的rtc_time_to_tm函数用于UTC时间转换,并指出要达到用户态localtime()效果需考虑时区信息。
摘要由CSDN通过智能技术生成

Linux 内核中获取时间分析基于do_gettimeofday()


  • 内核代码能一直获取一个当前时间的表示,通过查看jifies的值。通常这个值只代表从最后一次启动以来的时间,这个事实对驱动来说无关,因为它的生命周期受限于系统的uptime。
  • 驱动可以使用jifies的当前值来计算事件之间的时间间隔(例如,在输入驱动中从单击中区分双击或者计算超时)。
  • 驱动不需要墙上时钟以月、天和小时来表达;这个信息常常只对用户程序需要,例如cron 和 syslogd。处理真实世界的时间常常留给用户空间。
内核从墙上时钟转到jiffies值,
#include <linux/time.h> 

unsigned long mktime (unsigned int year, unsigned int mon, unsigned int day, unsigned int hour, unsigned int min, unsigned int sec);
获取绝对时间
  • 有时我们**有时我们需要在内核空间处理绝对时间。**为此<linux/time.h>输出了do_gettimeofday函数。当被调用时,被填充一个struct timeval指针–和在gettimeofday系统调用中使用的相同。数据结构中包含秒和毫秒值。原型如下:
 #include <linux/time.h> 

    void do_gettimeofday(struct timeval *tv);
转化为可读的时间

void do_

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值