用于检查有关CPU,内存,网络,NAT表使用情况的信息的API

时间:2012-02-21 16:56:18

标签: c embedded linux-kernel embedded-linux uclibc

我正在开发一个嵌入式Linux系统(2.6内核和uclibc),我需要检查cpu,内存,网络,NAT表的使用情况等......

我应该使用哪种API?我在哪里可以查看?我访问了一些关于Linux内核API的网站,但没有找到任何有关的直接信息。有任何建议或建议吗?

我的程序是用C语言编写的,带有uclibc和gcc 3.4.6

由于

2 个答案:

答案 0 :(得分:1)

您在procfs中可以获得的所有信息(以及更多信息)

  • CPU:/proc/uptime/proc/stat
  • 记忆:/proc/meminfo
  • 网络:/proc/net/dev
  • NAT:/proc/net/ip_conntrack

暂且不谈:GCC 3.4.6已经过时了。目前最老的版本是4.4;如果可能,我建议升级。 Buildroot将为您自动完成大部分流程。

答案 1 :(得分:1)

proc文件系统是相当优化的:它是一个虚拟文件系统,其中所有内容实际上是在读取时创建的。因此,如果没有人读取信息,则不会生成信息。

基于文本文件的界面的美妙之处在于它同时具有人类可读性和机器可读性。其次,没有结束问题和类似的事情 - 它在架构之间更好地工作。 与运行ioctls(包括V4L和ALSA在内的几个子系统)相比,它具有编译器(例如#pragma pack)和ABI独立的美感 - 如果您喜欢恐怖故事,请向ARM开发人员询问OABI到EABI的变化...

请注意,procfs和sysfs的内容被认为是稳定内核接口的一部分,不允许开发人员随意更改任何内容。