2011-08-08 82 views
1

我試圖獲得總數,如果可能的話,系統的空閒內存由C組成。它應該是系統無關的。用C獲得系統的總內存

要啓動討論,我可以建議getpagesize()方法來獲取頁面大小。任何人都可以提供有關內存頁數的幫助。

+0

「獨立於系統」是一個很高的命令,因爲內存只在C標準中非常抽象。 –

+1

這可能是相關的:http://stackoverflow.com/questions/2513505/how-to-get-available-memory-c-g – Timo

回答

5

沒有一個系統獨立的方式來做到這一點,因爲它顯然依賴於系統!

3

沒有辦法以獨立於系統的方式做到這一點。該語言沒有內存頁面的概念,也沒有存儲頁面的位置和方式。

1

如果通過「系統無關」來表示您的操作系統是獨立的,那麼我真的懷疑您會發現任何一個命令都可以在所有平臺上運行。

如果你想具體系統:

  • 在Windows上使用GlobalStatusMemoryEx
  • 在Linux上,我可能會去的快速和骯髒的方法(解析的/ proc/meminfo中)

對於Linux你也可以嘗試sysconf函數unistd.h

2

不僅內存處理是系統依賴的其他在許多情況下,「內存總量」這樣的東西根本不存在作爲一個清晰的概念。有

  • 物理內存,但是這通常不是硬約束,因爲它是由磁盤上
  • 分頁內存的支持,但取決於配置,並且往往不是硬約束要麼,因爲
  • 虛擬內存,它只是描述了地址可以擁有哪些不同的「數字」,哪些由操作系統自由歸屬,即使它不能被上述兩者支持。