作者:段筱筱雨_422 | 来源:互联网 | 2023-07-23 19:00
获取系统启动的时间。Windows系统和Linux系统1、Windows系统1)代码如下#include<stdio.h>#include<time.h>#inclu
获取系统启动的时间。Windows系统和Linux系统
1、Windows系统
1)代码如下
#include
#include
#include
#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
#include
#include
#include
#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