2015-11-30 22 views
0

使用libstatgrab時何時以及如何釋放內存。我沒有看到像sg_free這樣的函數調用,用於釋放用於存儲系統統計信息的內存對象。例如:以編程方式釋放libstagrab中的內存

sg_init(1); 
sg_drop_privileges() 
sg_load_stats *load_stat; 
while(load_stat = sg_get_load_stats(NULL) != NULL) { 
    cout << load_stat->min1 << load_stat->min5 << load_stat->min15); 
} 

上述while循環不斷調用sg_get_load_stats函數來獲取cpu負載。它每次調用時都使用內部緩衝區還是創建一個新緩衝區?如果後者是真的,我們不應該解放對象嗎?謝謝。

回答

0

The Documentation似乎聲明sg_get_load_stats()具有本地作用域,並由libstatgrab庫處理。

sg_get_load_stats_r(),大概用於從當前作用域中返回stats的值,動態分配,並且生成的緩衝區需要由用戶清理。