且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

获取系统开机的时间(Windows、Linux)

更新时间:2022-09-13 20:20:06

获取系统启动的时间。Windows系统和Linux系统

 

1、Windows系统

  1)代码如下

获取系统开机的时间(Windows、Linux)
#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;
}
获取系统开机的时间(Windows、Linux)

  2)运行结果

获取系统开机的时间(Windows、Linux)

2、Linux下

   1)代码如下

获取系统开机的时间(Windows、Linux)
#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;
}
获取系统开机的时间(Windows、Linux)

  2)运行结果

$ ./getSysRunTime 
System boot time: 2015-2-6 1:29:50

 



本文转自郝峰波博客园博客,原文链接:http://www.cnblogs.com/fengbohello/p/4277082.html,如需转载请自行联系原作者