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_