zoukankan      html  css  js  c++  java
  • 获取系统开机的时间(Windows、Linux)

    获取系统启动的时间。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("
    ");
    
        time_t DateTime = nowtime - (iRunTime / 1000);
        printf("System start : ");
        printTime(DateTime, PRINT_ALL);
        printf("
    ");
    
        int iH, iM, iS, iSec;
        iSec = iRunTime / 1000;
        iH = iSec / 3600;
        iM = iSec / 60 % 60;
        iS = iSec % 60;
        printf("System run   : %02d:%02d:%02d
    ", 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
    ",
                    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
    ", 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
  • 相关阅读:
    三种常见的编码:ASCII码、UTF-8编码、Unicode编码等字符占领的字节数
    快学Scala习题解答—第十章 特质
    [LeedCode OJ]#63 Unique Paths II
    收集互联网博客
    Android 内存监测工具 DDMS --> Heap(转)
    (转载)测试工具monkey
    (转载)Git使用教程
    时间戳转换为时间字符串
    二维码相关知识点
    教你跳转到系统指定页面
  • 原文地址:https://www.cnblogs.com/fengbohello/p/4277082.html
Copyright © 2011-2022 走看看