复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21// 这里是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的补丁 };
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22// 一份简单的测试代码 #include <stdio.h> #include <sys/sysinfo.h> int main(void) { struct sysinfo info; int iRetVal = -1;/*用于获取函数的返回值,默认为-1*/ iRetVal = sysinfo(&info); printf("return val : %dn",iRetVal);//打印函数返回值,成功为0,失败为-1 printf("uptime : %ldn",info.uptime);//打印从设备开启到现在的时间,单位为秒 printf("1 min load average : %lun",info.loads[0]); printf("5 min load average : %lun",info.loads[1]); printf("15 min load average: %lun",info.loads[2]);//平均负载 printf("totalram : %lun",info.totalram);//总可用内存大小 printf("freeram : %lun",info.freeram); //剩余内存 printf("procs : %un",info.procs); //进程数 return 0; } // ———————————————— // 版权声明:本文为CSDN博主「行者三个石」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 // 原文链接:https://blog.csdn.net/qq_33706673/article/details/78187559
最后
以上就是香蕉盼望最近收集整理的关于嵌入式linux学习笔记--sysinfo获取linux的开机时间的全部内容,更多相关嵌入式linux学习笔记--sysinfo获取linux内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复