linux下这些写为什么修改不了系统时间,请指教,谢谢

hfs1978 2013-11-21 10:44:01
int fd = open("/dev/rtc",O_RDWR);
if(fd == -1)
{
perror("/dev/rtc");
exit(errno);
}

struct rtc_time rtc_tm;
int ret = ioctl(fd, RTC_RD_TIME,&rtc_tm);
rtc_tm.tm_mday = 20;
rtc_tm.tm_mon = 10;
rtc_tm.tm_year = 2013 - 1900;
rtc_tm.tm_hour = 11;
rtc_tm.tm_min = 58;
rtc_tm.tm_sec = 58;
ret = ioctl(fd, RTC_SET_TIME,&rtc_tm);
if (ret == -1)
{
perror("ioctl");
exit(errno);
}
close(fd);
...全文
338 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
非凡glj 2013-12-31
  • 打赏
  • 举报
回复
系统时钟和硬件时钟的区别,你的实现修改了硬件时钟,没有修改系统时钟,可以用settimeofday修改系统时钟。 系统在每次启动的时候会使用硬件时钟来设定系统时钟
rethyx 2013-12-31
  • 打赏
  • 举报
回复
有系统函数可以修改的,不用直接改文件,此外你在用struct tm的时候除了要注意year之外还要注意month,他们的基准都不一样,用stime函数试试,或者settimeofday
hfs1978 2013-12-12
  • 打赏
  • 举报
回复
用systime系统函数就没问题了
falloutmx 2013-11-26
  • 打赏
  • 举报
回复
这个是修改RTC的,一般上电的时候RTC才会同步系统时间。这是两个独立的计时
熊浩毛毛 2013-11-26
  • 打赏
  • 举报
回复
这是修改实时时钟的,可能是实时时钟驱动没有对set time的一个对应操作!
hfs1978 2013-11-22
  • 打赏
  • 举报
回复
没有报任何错误,程序运行在linux的root用户
max_min_ 2013-11-21
  • 打赏
  • 举报
回复
报错的什么错误?确认是否修改成功先
KeequenLiu 2013-11-21
  • 打赏
  • 举报
回复
linux 下修改系统时间是需要管理权限的,你可以在代码中增加是否能获取管理员权限的代码,不能的话,则提示权限不足
iasky 2013-11-21
  • 打赏
  • 举报
回复
报的什么错误?

23,116

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧