2012-10-02 64 views
2

我想在可用內存不足時提醒用戶。目前我使用sysconf(_SC_PHYS_PAGES)來獲取可用物理頁面的數量。如何在Linux下用C++獲取緩衝/緩存內存大小?

但是,也有操作系統用作緩衝區和緩存的內存。我如何以編程方式獲得它們?

+2

請考慮閱讀'/ proc/meminfo'而不是使用'sysconf()';它提供了相當詳盡的內存使用情況報告。 – cdhowie

回答

4

procps的free命令執行的方式是通過讀取/proc/meminfo文件。你可以看到他們的來源here。 meminfo函數更新全局變量,特別是kb_main_buffers和kb_main_cached。你可能可以重用他們的代碼來做你想做的事情。 (假設您的許可證是兼容的)