Linux启动后获得系统时间

use*_*770 3 c linux time

我需要找到系统时间,因为我的c代码在linux机器上通电.像'time()'和gettimeofday()这样的函数返回自纪元以来的时间,而不是自开机以来的时间.如何在开机后找到时钟滴答的时间或次数?

提前致谢!

Nik*_* C. 8

此信息通过/proc文件系统API提供.具体来说,/proc/uptime.在C中,只需将其作为普通文件打开并从中读取一个浮点数.这将是自开机以来的秒数.如果您读取另一个FP值,它将是系统在总空闲时间内花费的秒数.你只对第一个号码感兴趣.

例:

float uptime;
FILE* proc_uptime_file = fopen("/proc/uptime", "r");
fscanf(proc_uptime_file, "%f", &uptime);
Run Code Online (Sandbox Code Playgroud)

该值以秒为单位,浮点数.

您可以将其转换回时钟刻度:

uptime * sysconfig(_SC_CLK_TCK);
Run Code Online (Sandbox Code Playgroud)


Jes*_*ese 2

如果你想了解 C API,

这个问题可能与我调用什么 API 来获得系统正常运行时间?

如果您想通过 shell 了解正常运行时间,请使用 uptime 命令。

$uptime
Run Code Online (Sandbox Code Playgroud)