IT评测·应用市场-qidao123.com

标题: Linux内核 -- RTC之`struct rtc_time` 字段分析 [打印本页]

作者: 卖不甜枣    时间: 2025-1-11 16:01
标题: Linux内核 -- RTC之`struct rtc_time` 字段分析
Linux Kernel 中 struct rtc_time 的 tm_year 字段详解

1. struct rtc_time 的界说

在 Linux 内核中,struct rtc_time 用于表示及时时钟(RTC)时间。其界说如下:
  1. struct rtc_time {
  2.     int tm_sec;   /* 分钟的秒数 (0-59) */
  3.     int tm_min;   /* 小时的分钟数 (0-59) */
  4.     int tm_hour;  /* 自午夜起的小时数 (0-23) */
  5.     int tm_mday;  /* 月中的某一天 (1-31) */
  6.     int tm_mon;   /* 自一月起的月数 (0-11) */
  7.     int tm_year;  /* 自1900年以来的年份偏移值 */
  8.     int tm_wday;  /* 自星期日起的天数 (0-6) */
  9.     int tm_yday;  /* 自一月一日起的天数 (0-365) */
  10.     int tm_isdst; /* 夏令时标志 */
  11. };
复制代码
2. tm_year 的含义


3. 使用中的注意事项


4. 与用户空间的交互


5. 现实应用示例

获取时间

  1. struct rtc_time tm;
  2. rtc_read_time(rtc, &tm);
  3. int year = tm.tm_year + 1900; // 转换为标准年份
  4. printk("Current year: %d\n", year);
复制代码
设置时间

  1. struct rtc_time tm = {
  2.     .tm_year = 2023 - 1900,  // 转换标准年份为 tm_year 的值
  3.     .tm_mon = 11 - 1,        // 月份,从 0 开始
  4.     .tm_mday = 30,
  5.     .tm_hour = 12,
  6.     .tm_min = 0,
  7.     .tm_sec = 0,
  8. };
  9. rtc_set_time(rtc, &tm);
复制代码
6. 与 RTC 硬件交互


7. 常见问题

溢出问题


世纪问题


8. 小结



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/) Powered by Discuz! X3.4