我需要找到系统时间,因为我的c代码在linux机器上通电.像'time()'和gettimeofday()这样的函数返回自纪元以来的时间,而不是自开机以来的时间.如何在开机后找到时钟滴答的时间或次数?
提前致谢!
此信息通过/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)
如果你想了解 C API,
这个问题可能与我调用什么 API 来获得系统正常运行时间?
如果您想通过 shell 了解正常运行时间,请使用 uptime 命令。
$uptime
Run Code Online (Sandbox Code Playgroud)