当前位置: 首页 > 工具软件 > sysinfo > 使用案例 >

嵌入式linux学习笔记--sysinfo获取linux的开机时间

晁绍辉
2023-12-01
// 这里是linux  2.3.48以上版本的内核的信息
#include <sys/sysinfo.h>      // 需要包含的头文件
int sysinfo(struct sysinfo *info);// 需要用到的函数的原型
struct sysinfo {  
      long uptime;             /* 启动到现在经过的时间 */  
      unsigned long loads[3];    
      /* 1, 5, and 15 minute load averages */  
      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的补丁  
};  
// 一份简单的测试代码
#include <stdio.h>
#include <sys/sysinfo.h>
int main(void)
{
 struct sysinfo info;
 int iRetVal = -1;/*用于获取函数的返回值,默认为-1*/
 iRetVal = sysinfo(&info);
 printf("return val         : %d\n",iRetVal);//打印函数返回值,成功为0,失败为-1  
 printf("uptime          : %ld\n",info.uptime);//打印从设备开启到现在的时间,单位为秒    
 printf("1 min load average : %lu\n",info.loads[0]);    
 printf("5 min load average : %lu\n",info.loads[1]);    
 printf("15 min load average: %lu\n",info.loads[2]);//平均负载    
 printf("totalram           : %lu\n",info.totalram);//总可用内存大小  
 printf("freeram            : %lu\n",info.freeram); //剩余内存   
 printf("procs              : %u\n",info.procs);    //进程数
 return 0;
} 
// ————————————————
// 版权声明:本文为CSDN博主「行者三个石」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
// 原文链接:https://blog.csdn.net/qq_33706673/article/details/78187559
 类似资料: