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



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

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

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

谢谢

您所追求的所有信息(以及更多信息(都可以在 procfs 中找到:

  • 中央处理器: /proc/uptime/proc/stat
  • 内存:/proc/meminfo
  • 网络: /proc/net/dev
  • 国家: /proc/net/ip_conntrack

顺便说一句:GCC 3.4.6 非常古老。目前维护的最古老的版本是 4.4;如果可能的话,我建议升级。Buildroot将为您自动化很多过程。

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

基于文本文件的界面的优点在于它既是人类可读的,也是机器可读的。其次,没有endianess问题之类的事情 - 它跨架构工作得更好。与运行 ioctls 相比,它是为包括 V4L 和 ALSA 在内的一些子系统完成的,它的优点是它也与编译器(例如 #pragma 包(和 ABI 独立 - 如果您喜欢恐怖故事,请向 ARM 开发人员询问有关 OABI 到 EABI 的变化......

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

最新更新