get_seconds函数功能描述:用于获得当前系统内核的时间,该时间是距离1970年1月1日0时0分0秒的整秒数。
get_seconds文件包含
#include<linux/timekeeping.h>
get_seconds函数定义
在内核源码中的位置:linux-3.19.3/kernel/time/timekeeping.c
函数定义格式:unsigned long get_seconds(void)
get_seconds输入参数说明
- 该函数不需要任何参数。
get_seconds返回参数说明
- 函数返回值类型是无符号长整型,表示内核时间的整秒数,当当前时间距离
1970:1:1:00:00:00
太长时,结果可能溢出,而此溢出的时间与所用机器的unsigned long类型的长度有关。
get_seconds实例解析
编写测试文件:get_seconds.c
头文件引用:
#include <linux/module.h>
#include<linux/time.h>
MODULE_LICENSE("GPL");
模块加载函数定义:
int __init get_seconds_init(void)
{
printk("get_seconds begin.\n");
unsigned long result=get_seconds( ); //调用函数获得系统内核时间(秒数)
printk("the get_seconds result is: %lu\n", result); //显示内核时间(秒数)
printk("get_seconds over.\n");
return 0;
}
模块退出函数定义:
void __exit get_seconds_exit(void)
{
printk("Goodbye get_seconds\n");
}
模块加载、退出函数调用:
module_init(get_seconds_init);
module_exit(get_seconds_exit);
实例运行结果及分析:
执行命令insmod get_seconds.ko插入内核模块,输入命令dmesg -c查看内核输出信息,出现如图所示结果。
结果分析:
从图可以看出当前系统内核的时间,将秒数粗略的换算成年月日可以验证函数的正确性。1449368340s大约是45年。