linux下C程序查看内存剩余大小

嵌入式linux中很多内存资源都比较小,所以很多程序中在malloc时就需要提前知道内存剩余的大小

下面是一种调用 sysinfo接口来实现。

示例代码如下:

cpp 复制代码
#include <stdio.h>
#include <linux/kernel.h>
#include <linux/unistd.h>
#include <sys/sysinfo.h>
 
int main(void)
{
    struct sysinfo s_info;
    int error = sysinfo(&s_info);
    printf("error0: %d, total: %lu free: %lu \n", error, s_info.totalram, s_info.freeram);
    //func_call1(pcModelName);
 
    error = sysinfo(&s_info);
    printf("error1: %d, total: %lu free: %lu \n", error, s_info.totalram, s_info.freeram);
 
    int msg[500];
    int i = 0;
    for(i = 0; i < 1; i++)
    {
        //func_call2(pcSrcFile, msg);
        error = sysinfo(&s_info);
        printf("error2: %d, total: %lu free: %lu \n", error, s_info.totalram, s_info.freeram);
 
        //func_call3(pcSrcFile, msg);
        error = sysinfo(&s_info);
        printf("error3: %d, total: %lu free: %lu \n", error, s_info.totalram, s_info.freeram);
    }
 
    //func_call4();
    error = sysinfo(&s_info);
    printf("error4: %d, total: %lu free: %lu \n", error, s_info.totalram, s_info.freeram);
}
相关推荐
perseveranceX12 分钟前
插入排序:扑克牌式的排序算法!
c语言·数据结构·插入排序·时间复杂度·排序稳定性
java_logo44 分钟前
Docker 部署 Rocky Linux 全流程教程
linux·运维·服务器·docker·容器·1024程序员节
Lynnxiaowen1 小时前
今天我们学习Linux架构keepalived实现LVS代理双击热备
linux·学习·架构·云计算
0wioiw01 小时前
Ubuntu(⑤Redis)
linux·运维·ubuntu
himobrinehacken1 小时前
c语言宏注意事项
c语言·开发语言
我爱钱因此会努力2 小时前
ansible实战-不同的用户登录不同的主机
linux·运维·服务器·ansible
Wang's Blog2 小时前
Linux小课堂: 系统核心技能与应用总结与进阶指南
linux·运维·服务器
Molesidy2 小时前
【Embedded System】嵌入式C语言基础知识
c语言·开发语言
 梦晓天明2 小时前
12.集合介绍以及数组的使用选择
linux·开发语言·python
Elias不吃糖3 小时前
Linux 环境适应 Day 1 全面笔记
linux·c++·笔记