在嵌入式Linux中使用C++读取 /proc/meminfo 文件来获取系统内存大小
文件并逐行读取其中的内容。当找到以 "MemTotal:" 开头的行时,提取出内存大小信息并去除空格和单位(KB),然后将其转换为无符号长整型数值。最后,输出总内存大小。请注意,这只是一个简单的示例代码,可能需要根据实际情况进行适当的错误处理和异常处理。文件中还包含其他有关内存的信息,你可以根据需求进一步解析该文件以获取更多详细信息。在嵌入式Linux中,可以使用C++编程语言通过读取。文件来获取
·
在嵌入式Linux中使用C++读取 /proc/meminfo 文件来获取系统内存大小
在嵌入式Linux中,可以使用C++编程语言通过读取 /proc/meminfo 文件来获取系统内存大小。以下是一个示例代码片段:
#include <iostream>
#include <fstream>
#include <string>
#include <algorithm>
int main()
{
std::ifstream meminfo("/proc/meminfo");
std::string line;
std::string memTotalStr = "MemTotal:";
std::string memSize;
if (meminfo.is_open())
{
while (std::getline(meminfo, line))
{
if (line.compare(0, memTotalStr.size(), memTotalStr) == 0)
{
memSize = line.substr(memTotalStr.size());
break;
}
}
meminfo.close();
}
if (!memSize.empty())
{
// 去除空格和单位(KB)
memSize.erase(std::remove_if(memSize.begin(), memSize.end(), [](char c)
{ return !std::isdigit(c); }),
memSize.end());
unsigned long long totalMemory = std::stoull(memSize);
totalMemory = (totalMemory * 1024) / 1000 / 1000;
std::cout << "Total Memory: " << totalMemory << " MB" << std::endl;
}
else
{
std::cerr << "Failed to read memory size." << std::endl;
return 1;
}
return 0;
}
上述代码打开 /proc/meminfo 文件并逐行读取其中的内容。当找到以 "MemTotal:" 开头的行时,提取出内存大小信息并去除空格和单位(KB),然后将其转换为无符号长整型数值。最后,输出总内存大小。
请注意,这只是一个简单的示例代码,可能需要根据实际情况进行适当的错误处理和异常处理。此外,/proc/meminfo 文件中还包含其他有关内存的信息,你可以根据需求进一步解析该文件以获取更多详细信息。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)