linux驱动中怎么以年月日时分秒的格式打印当前系统时间
时间: 2024-05-12 14:20:27 浏览: 122
在 Linux 驱动中,可以使用 `struct timespec` 结构体来获取当前系统时间,然后使用 `localtime` 函数将其转换为本地时间,最后使用 `strftime` 函数以指定的格式打印出来。
以下是示例代码:
```c
#include <linux/time.h>
#include <linux/module.h>
#include <linux/init.h>
MODULE_LICENSE("GPL");
static int __init my_init(void)
{
struct timespec ts;
struct tm tm;
char buf[20];
getnstimeofday(&ts); // 获取当前系统时间
time_to_tm(ts.tv_sec, 0, &tm); // 将时间转换为本地时间
strftime(buf, sizeof(buf), "%Y-%m-%d %H:%M:%S", &tm); // 格式化时间字符串
printk(KERN_INFO "Current system time: %s\n", buf); // 打印时间字符串
return 0;
}
static void __exit my_exit(void)
{
printk(KERN_INFO "Goodbye!\n");
}
module_init(my_init);
module_exit(my_exit);
```
这个驱动模块在加载时会打印当前系统时间,格式为 `YYYY-MM-DD HH:MM:SS`,例如:
```
[ 129.192000] Current system time: 2022-05-08 22:15:34
```
阅读全文