获取系统启动的时间。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 + ;
month = timeinfo->tm_mon + ;
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 / );
printf("System start : ");
printTime(DateTime, PRINT_ALL);
printf("\n"); int iH, iM, iS, iSec;
iSec = iRunTime / ;
iH = iSec / ;
iM = iSec / % ;
iS = iSec % ;
printf("System run : %02d:%02d:%02d\n", iH, iM, iS); return ;
}
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 = ;
time_t boot_time = ;
struct tm *ptm = NULL;
if (sysinfo(&info))
{
fprintf(stderr, "Failed to get sysinfo, errno:%u, reason:%s\n",
errno, strerror(errno));
return -;
}
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 + ,
ptm->tm_mon + , ptm->tm_mday, ptm->tm_hour, ptm->tm_min, ptm->tm_sec);
return ;
} int main()
{
if (print_system_boot_time() != )
{
return -;
} return ;
}
2)运行结果
$ ./getSysRunTime
System boot time: -- ::