C++ 求获取开机时间的API

C++ 求获取开机时间的API,第1张

NTSYSAPI

NTSTATUS

NTAPI

NtQuerySystemInformation (

IN UINT SystemInformationClass, // 信息类型

OUT PVOID SystemInformation, // 缓冲指针

IN ULONG SystemInformationLength, // 缓冲的字节大小

OUT PULONG ReturnLength OPTIONAL // 写入缓冲的字节数

);

第一个参数是请求的信息类型。这个参数可以有许多值。为了得到系统启动时间,我们只用其中的一个值:SystemTimeInformation(3)。

如果,第一个参数是SystemTimeInformation,则第二个参数必须是一个SYSTEM_TIME_INFORMATION结构指针。

typedef struct

{

LARGE_INTEGER liKeBootTime;

LARGE_INTEGER liKeSystemTime;

LARGE_INTEGER liExpTimeZoneBias;

ULONG uCurrentTimeZoneId;

DWORD dwReserved;

} SYSTEM_TIME_INFORMATION;

这个结构中第一个成员是liKeBootTime就是我们所要的系统被启动的时间(以毫秒计)。

Timestamp time = new Timestamp(SystemcurrentTimeMillis());

Systemoutprintln(timetoString());

日期时间都有

Date d = new Date();

String date = dtoLocaleString(); //获取当前日期,然后你可以自己对这个字符串进行处理。或者用dgetDate();等方法,单独取它的日期等等。

输出: 3:43pm up 1 day, 5:07, 2 users, load average: 000, 000, 000

2uptime命令

输出: 3:43pm up 1 day, 5:07, 2 users, load average: 000, 000, 000

输出结果同上

3查看/proc/uptime文件计算系统启动时间

cat /proc/uptime

输出: 10504044 10502475

第一数字即是系统已运行的时间10504044 秒,运用系统工具date即可算出系统启动时间

4查看/proc/uptime文件计算系统运行时间cat /proc/uptime | awk -F '{run_days=$1 / 86400;run_hour=($1 % 86400)/3600;run_minute=($1 % 3600)/60;run_second=$1 % 60;printf("run_days=%d/trun_hour=%d/trun_minute=%d/trun_second=%d/n",run_days,run_hour,run_minute,run_second)}'

uptime是linux命令里获取有关系统时间的。他就是到/proc/uptime找出一些信息计算的。

你也可以

/proc/uptime 提供了系统最近一次启动以来运行的时间,

读取这个文件然后自己计算,uptime里的第一个时间是up后的seconds,自己折算为天数等。

以上就是关于C++ 求获取开机时间的API全部的内容,包括:C++ 求获取开机时间的API、请问一下,如何用Java或者Javascript来获取系统已启动的时间、linux查看开机需要多长时间等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9726134.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存