C码获取电脑从启动到当前的运行时间
#include <stdlib.h>
#include <math.h>
#include <stdio.h>
#include <errno.h>
#include <error.h>
#include <sys/timerfd.h>
int main(int argc, char *argv[])
{
int err;
struct timespec expected;
int tfd = timerfd_create(CLOCK_MONOTONIC, 0);
if (tfd == -1)
error(1, errno, "timerfd_create()");
else
printf("timerfd_create success\n");
err = clock_gettime(CLOCK_MONOTONIC, &expected);
if (err)
error(1, errno, "clock_gettime()");
else
printf("clock_gettime success\n");
printf("time %.2ld:%.2ld:%.2ld\n", expected.tv_sec / 3600,
(expected.tv_sec / 60) % 60, expected.tv_sec % 60);
return 0;
}
编译和运行
$ ./time_func_test
timerfd_create success
clock_gettime success
time 126:25:11
从9月8号开机到现在确实是,对比一下
$ date
2021年 09月 13日 星期一 14:52:24 CST
$ uptime
14:53:10 up 5 days, 6:25, 1 user, load average: 0.45, 0.22, 0.19
参考文档
linux timerfd系列函数总结
https://www.cnblogs.com/wenqiang/p/6698371.html
Linux查看系统启动时间
https://www.cnblogs.com/realjimmy/p/14346371.html