// 这里是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