2012-02-21 29 views
0

我正在开发嵌入式Linux系统(2.6内核和uclibc),我需要检查CPU,内存,网络,NAT表的使用情况等。检查CPU,内存,网络,NAT表使用信息的API

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

我的计划是写在C与uClibc的和gcc 3.4.6

感谢

回答

1

所有你后的信息(以及其他更多)可在procfs:已

  • CPU:/proc/uptime/proc/stat
  • 内存:/proc/meminfo
  • 网络:/proc/net/dev
  • NAT:/proc/net/ip_conntrack

顺便说一句:GCC 3.4.6是reeealllly岁。目前最老的版本是4.4;如果可能,我建议升级。 Buildroot会为您自动完成大量的过程。

+0

感谢您的回答。我没有写在最初的问题上,但我已经知道/ proc。我认为这不是检查信息的最佳方式。 那是最好的选择吗?没有任何系统函数调用?是否有API访问/ proc /或者我应该使用bash脚本? 谢谢 P.S.不幸的是,我们不得不使用gcc 3.4.6作为其硬件制造商支持的唯一编译器。 – fazineroso 2012-02-21 18:34:46

+0

'/ proc'绝对是获取这些信息的最佳方式;它几乎是所有其他工具和库的基础。使用最简单的东西 - 如果这是一个bash脚本,就去做吧。 – duskwuff 2012-02-21 19:42:45

1

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

基于文本文件界面的美妙之处在于它同时具有人类可读性和机器可读性。其次,没有endianess问题和类似的东西 - 它在各种架构下效果更好。 与运行ioctls相比,这是为包括V4L和ALSA在内的几个子系统完成的,它的优点在于它也是编译器(例如#pragma pack)和独立于ABI--如果您喜欢恐怖,请向ARM开发人员咨询OABI到EABI的变化故事...

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