linux c获取系统启动时间

sysinfo 函数原型

int sysinfo(struct sysinfo *info);
##获取系统相关信息结构体

sysinfo 结构体说明

struct sysinfo {
      long uptime;          /* 启动到现在经过的时间 */
      unsigned long loads[3];  /* 1 , 5, 15 分的系统负载*/
      unsigned long totalram;  /* 总的可用的内存大小 */
      unsigned long freeram;   /* 还未被使用的内存大小 */
      unsigned long sharedram; /* 共享的存储器的大小*/
      unsigned long bufferram; /* 共享的存储器的大小 */
      unsigned long totalswap; /* 交换区大小 */
      unsigned long freeswap;  /* 还可用的交换区大小 */
      unsigned short procs;    /* 当前进程数目 */
      unsigned long totalhigh; /* 总的高内存大小 */
      unsigned long freehigh;  /* 可用的高内存大小 */
      unsigned int mem_unit;   /* 以字节为单位的内存大小 */
      char _f[20-2*sizeof(long)-sizeof(int)];
      /* libc5的补丁
};

C源码:

#include <stdio.h>
#include <sys/sysinfo.h>
#include <time.h>
#include <errno.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 = localtime(&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;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-27 17:47:12

linux c获取系统启动时间的相关文章

linux --&gt; 获取系统启动时间

获取系统启动时间 一.前言 时间对操作系统来说非常重要,从内核级到应用层,时间的表达方式及精度各部相同.linux内核里面用一个名为jiffes的常量来计算时间戳.应用层有time.getdaytime等函数.今天需要在应用程序获取系统的启动时间,百度了一下,通过sysinfo中的uptime可以计算出系统的启动时间. 二.sysinfo结构 sysinfo结构保持了系统启动后的信息,主要包括启动到现在的时间,可用内存空间.共享内存空间.进程的数目等.man sysinfo得到结果如下所示: s

linux获取系统启动时间

1.前言 时间对操作系统来说非常重要,从内核级到应用层,时间的表达方式及精度各部相同.linux内核里面用一个名为jiffes的常量来计算时间戳.应用层有time.getdaytime等函数.今天需要在应用程序获取系统的启动时间,百度了一下,通过sysinfo中的uptime可以计算出系统的启动时间. 2.sysinfo结构 sysinfo结构保持了系统启动后的信息,主要包括启动到现在的时间,可用内存空间.共享内存空间.进程的数目等.man sysinfo得到结果如下所示: 1 struct s

Linux C 获取系统时间信息

比如获取当前年份:               /* 获取当前系统时间 暂时不使用 int iyear = 0; int sysyear = 0; time_t now; struct tm *timenow; time(&now); timenow = localtime(&now); sysyear = timenow->tm_year+1900; */ linux下获取系统时间的方法 可以用 localtime 函数分别获取年月日时分秒的数值. Linux下获得系统时间的C语言

Linux sysinfo获取系统相关信息

Linux中,可以用sysinfo来获取系统相关信息. #include <stdio.h> #include <stdlib.h> #include <errno.h> #include <linux/unistd.h> /* for _syscallX macros/related stuff */ #include <linux/kernel.h> /* for struct sysinfo */ //_syscall1(int, sysi

linux c 获取系统时间

#include <time.h> main() { time_t timep; time (&timep); printf(“%s”,asctime(gmtime(&timep))); } #include<time.h> main() { time_t timep; time (&timep); printf(“%s”,ctime(&timep)); } #include<sys/time.h> #include<unistd.

Linux C 语言 获取系统时间信息

比如获取当前年份:        /* 获取当前系统时间 暂时不使用        int iyear = 0;        int sysyear = 0;        time_t now;        struct tm *timenow;        time(&now);        timenow = localtime(&now);        sysyear = timenow->tm_year+1900;        */linux下获取系统时间的方法

Python获取Linux或Windows系统的基本信息

前段时间写了一篇博文名为<利用Python脚本获取Windows和Linux的系统版本信息>,本篇博文利用这篇文章中的知识提供一个增强版本的获取信息的Python脚本.执行后,看起来就像登录Ubuntu Linux系统时提示的motd信息一样,可以看到: 系统的类型.发行版本(具体信息).内核版本等 当前系统的时间.时区 系统每一个CPU核心的负载和CPU整体负载 进程数量 根分区的磁盘空间,Windows下默认C盘 登录的用户总数和每一个登录到系统的用户的信息 内存和交换分区的利用率 默认网

Linux系统编程_5_获取系统时间

Linux环境中时间编程函数: 比较常用的是ctime与localtime char *ctime(const time_t *timep); char *ctime_r(const time_t *timep, char *buf); struct tm *localtime(const time_t *timep); struct tm *localtime_r(const time_t *timep, struct tm *result); Linux环境中时间编程结构体: struct

Linux驱动中获取系统时间

最近在做VoIP方面的驱动,总共有16个FXS口和FXO口依次初始化,耗用的时间较多.准备将其改为多线程,首先需要确定哪个环节消耗的时间多,这就需要获取系统时间. #include <linux/time.h> /*头文件*/ struct timeval time_now; unsigned long int time_num;//获取的时间 do_gettimeofday(&time_now); time_num = time_now.tv_sec*1000+time_now.tv