2012-02-21 28 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的內容被認爲是穩定的內核接口的一部分,不允許開發人員隨意更改任何內容。