Linux内核 mktime()

函数:mktime( )

文件包含:

#include<linux/time.h>

函数定义:

在内核源码中的位置:linux-3.19.3/include/linux/time.h

函数定义格式:

static inline unsigned long mktime(const unsigned int year, const unsigned int mon, const unsigned int day,  const unsigned int hour, const unsigned int min, const unsigned int sec)
{
    return mktime64(year, mon, day, hour, min, sec);
}

函数功能描述:

  • 此函数用于计算输入的时间距离1970:1:1:00:00:00的秒数,返回的结果是秒数。

输入参数说明:

  • 输入的六个参数分别表示年、月、日、时、分、秒,是用国际时间表示的。

返回参数说明:

  • 此函数的返回结果是无符号的长整型,所以有一定的表示范围,如果输入的时间距离1970:1:1: 00:00:00太长,会出现溢出现象,而此溢出的时间与机器的位数有关。

实例解析:

编写测试文件:mktime.c

头文件引用:

#include <linux/module.h>
#include<linux/time.h>
MODULE_LICENSE("GPL");

模块加载函数定义:

int __init mktime_init(void)
{
    printk("mktime test begin\n");         //调用函数mktime将时间换算成秒
    unsigned long result1=mktime(2015,12,6,13,20,10);
    unsigned long result2=mktime(2015,12,6,13,20,12);

    // 显示函数调用结果
    printk("the result1 is :%ld\n", result1);
    printk("the result2 is :%ld\n", result2);
    return 0;
}

模块退出函数定义:

void __exit mktime_exit(void)
{
    printk("Goodbye mktime\n");
}

模块加载、退出函数调用:

module_init(mktime_init);
module_exit(mktime_exit);

实例运行结果及分析:

执行命令insmod mktime.ko插入模块,然后输入命令dmesg -c查看内核输出信息,出现如图所示的结果。

Linux内核 mktime()

结果分析:

从结果可以看出两个时间只差两秒,同输入的两个时间之差一致,可以反向粗略地计算验证转换的正确性。

酷客网相关文章:

赞(0)

评论 抢沙发

评论前必须登录!