获取linux系统RTC设备的时钟

本文介绍了一种在Linux环境下通过编程方式读取实时时钟(RTC)的方法,并提供了一个简单的示例程序,演示如何利用ioctl系统调用读取RTC设备的时间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于linux和windows的不同,这个结构体不能使用 库文件中的tm结构体

ExpandedBlockStart.gif代码
#include <sys/ioctl.h>

struct rtc_time {
 
int tm_sec;
 
int tm_min;
 
int tm_hour;
 
int tm_mday;
 
int tm_mon;
 
int tm_year;
 
int tm_wday;
 
int tm_yday;
 
int tm_isdst;
};
#define RTC_MAGIC 'p'
#define RTC_RD_TIME  _IOR(RTC_MAGIC, 0x09, struct rtc_time) /* Read RTC time. */
#define RTC_SET_TIME _IOW(RTC_MAGIC, 0x0a, struct rtc_time) /* Set RTC time. */
void rtc_test(void)
{
 
int fd;
 
struct rtc_time tm;
 fd 
= open("/dev/rtc0",O_RDONLY); 
 
if (fd < 0) {
  
return;
 }
 
if (0 != ioctl(fd,RTC_RD_TIME,&tm)){
  close(fd);
  
return;
 }
 close(fd);

 printf(
"%d-%d:%d-%d:%d:%d\n",
  tm.tm_year
+1900,
  tm.tm_mon
+1,
  tm.tm_mday,
  tm.tm_hour,
  tm.tm_min,
  tm.tm_sec);
}

 

 

转载于:https://www.cnblogs.com/kakaliush/archive/2010/03/18/1688955.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值