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查看开机需要多长时间等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)