获取系统启动的时间。Windows系统和Linux系统
1、Windows系统
1)代码如下
#include <stdio.h> #include <time.h> #include <windows.h> #define PRINT_ALL 0xff #define PRINT_DATE (1 << 0) #define PRINT_TIME (1 << 1) void printTime(time_t nowtime, int iFlag) { struct tm *timeinfo; timeinfo = localtime( &nowtime ); int year, month, day, hour, min, sec; year = timeinfo->tm_year + 1900; month = timeinfo->tm_mon + 1; day = timeinfo->tm_mday; hour = timeinfo->tm_hour; min = timeinfo->tm_min; sec = timeinfo->tm_sec; if(iFlag & PRINT_DATE) { printf("%d-%d-%d ", year, month, day); } if(iFlag & PRINT_TIME) { printf("%02d:%02d:%02d", hour, min, sec); } fflush(stdout); } int main() { int iRunTime = GetTickCount(); time_t nowtime; time( &nowtime ); printf("Now : "); printTime(nowtime, PRINT_ALL); printf("\n"); time_t DateTime = nowtime - (iRunTime / 1000); printf("System start : "); printTime(DateTime, PRINT_ALL); printf("\n"); int iH, iM, iS, iSec; iSec = iRunTime / 1000; iH = iSec / 3600; iM = iSec / 60 % 60; iS = iSec % 60; printf("System run : %02d:%02d:%02d\n", iH, iM, iS); return 0; }
2)运行结果
2、Linux下
1)代码如下
#include <stdio.h> #include <sys/sysinfo.h> #include <time.h> #include <errno.h> #include <string.h> static int print_system_boot_time() { struct sysinfo info; time_t cur_time = 0; time_t boot_time = 0; struct tm *ptm = NULL; if (sysinfo(&info)) { fprintf(stderr, "Failed to get sysinfo, errno:%u, reason:%s\n", errno, strerror(errno)); return -1; } time(&cur_time); if (cur_time > info.uptime) { boot_time = cur_time - info.uptime; } else { boot_time = info.uptime - cur_time; } ptm = gmtime(&boot_time); printf("System boot time: %d-%-d-%d %d:%d:%d\n", ptm->tm_year + 1900, ptm->tm_mon + 1, ptm->tm_mday, ptm->tm_hour, ptm->tm_min, ptm->tm_sec); return 0; } int main() { if (print_system_boot_time() != 0) { return -1; } return 0; }
2)运行结果
$ ./getSysRunTime System boot time: 2015-2-6 1:29:50
本文转自郝峰波博客园博客,原文链接:http://www.cnblogs.com/fengbohello/p/4277082.html,如需转载请自行联系原作者