首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从C程序中获取系统信息?

从C程序中获取系统信息?
EN

Software Engineering用户
提问于 2012-09-05 18:44:16
回答 3查看 2.2K关注 0票数 0

我正在用C编写一个小程序,我想用它将一些系统统计数据输出到我的HD44780 16x2字符显示器上。我将使用的系统是一个Debian ARM系统,虽然不相关,但显示在GPIO头上。(该系统是一个Raspberry Pi)。

作为第一次尝试(有点不那么雄心勃勃),我想从一些简单的东西开始,比如RAM和CPU的使用(我是C的新手)。

我知道,如果我发出外部命令调用,我需要fork()和execve() (或者某种让我返回结果的等价物),我想知道的是如何以我可以使用的干净格式获取我想要的信息。

我当然不需要打电话(例如);

代码语言:javascript
复制
free -h

然后用awk或者类似的方法把我想要的东西砍下来?一定有更干净的方法吗?

这个问题应该被看作是一个一般性的问题,在C中获取系统信息的最佳实践是什么( RAM/CPU的使用只是一个初步的例子)。

EN

回答 3

Software Engineering用户

回答已采纳

发布于 2012-09-05 19:01:46

关于系统状态的信息超出了C语言规范的范围,所以您所做的任何事情都将特定于程序运行的系统。

既然您已经确定了一个目标环境(Linux)和一个提供您所追求的一些信息的程序(free(1)),您最好的选择是获取和检查该程序的源代码,了解它如何工作,并使用您在自己的程序中学到的内容。(这肯定比复制实用程序和分离输出要好得多。)

票数 7
EN

Software Engineering用户

发布于 2012-09-06 09:24:42

如果您是在现代Linux系统上,您要查找的信息可以在根植于/proc/的伪文件系统中找到。每个进程都有一个/proc/[pid]子目录,其他子目录提供全局状态。例如,/proc/meminfofree(1)的来源。

票数 3
EN

Software Engineering用户

发布于 2012-09-06 12:02:24

有各种提供系统信息的库例程,试着查看一下sysinfo()调用。

票数 0
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/163835

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档