使用libstatgrab
时何时以及如何释放内存。我没有看到像sg_free
这样的函数调用释放内存对象来存储系统统计信息。例如:
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 :(得分:1)
The Documentation似乎表明sg_get_load_stats()具有本地范围,并由libstatgrab库处理。
sg_get_load_stats_r(),可能用于返回当前范围之外的统计信息的值,动态分配,并且用户需要清理生成的缓冲区。