【问题标题】:Retrieving Last Boot Time Stamp In C在 C 中检索上次启动时间戳
【发布时间】:2013-10-06 20:32:57
【问题描述】:

我已经能够从/proc/uptime 检索正常运行时间值(以秒为单位)。但是,我需要使用 C 检索上次启动时间戳。(我不能使用 system(...) 函数调用 uptime。)

例如,当我运行uptime 命令时,我得到的值为:

15:31:35 up 2 days,  4:14,  3 users,  load average: 0.04, 0.05, 0.05

我需要第一部分:15:31:35。有没有内置的 C 函数可以让我得到这个?

【问题讨论】:

  • strace uptime 会告诉你uptime 做了什么,然后你就可以做到了。提示:open("/proc/uptime", O_RDONLY)

标签: c system clock uptime


【解决方案1】:

打开/proc/uptime 并阅读。第一个数字是以秒为单位的正常运行时间。

【讨论】:

  • 我知道..我有这个价值。这很容易。我只是不知道如何获得确切的 HH:MM:SS 时间戳。如果我将文件中的秒数转换为 HH:MM:SS,它将给我计算机运行的总小时数和分钟数和秒数,而不是计算机启动时的实际时间戳,你知道我的意思吗?
  • @JakeZ 那么你的问题是“我如何确定几秒钟前的时间?”?如果是这样,请阅读time(3)localtime(3)
【解决方案2】:

阅读 /proc/uptime 很好。

或者您可以使用FILE *fp = popen("uptime", "r") 并从 fp 读取您想要的字符串。

这样更便携。 (我的意思是不同的Unix,比如MacOS)。

哦,我刚刚看到您缺少“系统”要求。没关系。

【讨论】:

    猜你喜欢
    • 2013-06-20
    • 2023-01-13
    • 2020-04-08
    • 1970-01-01
    • 2015-07-27
    • 1970-01-01
    • 2020-04-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多