【问题标题】:Set hardware clock on linux not working在linux上设置硬件时钟不起作用
【发布时间】:2010-11-28 19:56:39
【问题描述】:

当我尝试像这里描述的那样设置计算机硬件时钟时:

How Do You Programmatically Set the Hardware Clock on Linux?

它不工作(时间没有更新到新时间)。

fd = open("/dev/rtc", O_RDONLY); //<- return 3

ioctl(fd, RTC_SET_TIME, &rt); //<- return 0

当我添加时

system("/sbin/hwclock --systohc");

我明白了:

无法通过以下方式访问硬件时钟 任何已知的方法

从工作的终端执行 hwclock --systohc。

它是 VirtualBox 中的 Ubuntu 10.10 机器。

我在 GCC 4.4.5 中使用 Code::Blocks 10.05

这是我的完整源代码:

http://pastebin.com/sgBBv1XA

是的,我以 root 身份执行程序。

【问题讨论】:

  • 由于您将时间设置为 rtc,而不是由 stime 设置。应该调用/sbin/hwclock --hctosys 而不是--systohc--hctosys 会从硬件时钟同步系统时间。

标签: linux gcc codeblocks clock


【解决方案1】:

我怀疑是否可以在虚拟环境中运行的机器中设置高清时钟。

【讨论】:

  • VirtualBox 不模拟虚拟 RTC 吗?
  • @mc-kay 您可能需要通过 VirtualBox 的选项为虚拟机指定 UTC。
  • 我在 VirtualBox 设置中启用了“UTC 硬件时钟”。
  • 我没有真正的 Linux 机器,所以有人可以测试一下这段代码吗?
  • @mc-kay 你能直接在你的 shell 中执行 /sbin/hwclock --systohc 吗?
猜你喜欢
  • 2010-09-17
  • 1970-01-01
  • 2011-01-12
  • 1970-01-01
  • 1970-01-01
  • 2017-12-16
  • 2013-05-02
  • 2018-12-17
  • 1970-01-01
相关资源
最近更新 更多