获取系统开机的时间(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("\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,如需转载请自行联系原作者


相关文章
|
7天前
|
资源调度 JavaScript 搜索推荐
Linux系统之部署envlinks极简个人导航页
【4月更文挑战第11天】Linux系统之部署envlinks极简个人导航页
40 2
|
10天前
|
缓存 Linux 测试技术
安装【银河麒麟V10】linux系统--并挂载镜像
安装【银河麒麟V10】linux系统--并挂载镜像
61 0
|
10天前
|
监控 Unix Linux
Linux操作系统调优相关工具(四)查看Network运行状态 和系统整体运行状态
Linux操作系统调优相关工具(四)查看Network运行状态 和系统整体运行状态
26 0
|
10天前
|
NoSQL Linux Redis
linux 下和win下安装redis 并添加开机自启 图文详解
linux 下和win下安装redis 并添加开机自启 图文详解
15 0
|
11天前
如何隐藏windows10系统任务栏右下角的语言输入法图标?
如何隐藏windows10系统任务栏右下角的语言输入法图标?
|
8天前
|
存储 算法 Linux
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
24 6
|
3天前
|
运维 网络协议 Unix
18.系统知识-Linux常用命令
18.系统知识-Linux常用命令
|
4天前
|
SQL 监控 安全
Linux&Windows 日志分析 陇剑杯 CTF
Linux&Windows 日志分析 陇剑杯 CTF
29 0
|
12天前
|
Prometheus 监控 Cloud Native
【Linux】查看系统内存命令(详细讲解)
【Linux】查看系统内存命令(详细讲解)
|
7月前
|
缓存 Ubuntu Linux
Vim编辑器入门指南:安装、基本操作和高级技巧详解 | 适用于Linux系统
Vim编辑器入门指南:安装、基本操作和高级技巧详解 | 适用于Linux系统
280 0