我想制作一个shell脚本或c程序来计算可用内存,就像命令free
在linux上为hp-ux做的那样。
在hp-ux默认安装中,只有我知道可以计算可用内存的命令是vmstat,或者最终是top。
是否有任何c api允许用户计算所有可用内存?或者最终确定系统上所有可用物理内存的方法,然后对所有使用的内存求和并计算免费的Phys内存?
答案 0 :(得分:1)
我用这个小程序做到了:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <sys/pstat.h>
int main () {
struct pst_static pst;
struct pst_dynamic psd;
memset(&pst,0,sizeof(struct pst_static));
pstat_getstatic(&pst, sizeof(pst), (size_t)1, 0);
memset(&psd,0,sizeof(struct pst_dynamic));
pstat_getdynamic(&psd, sizeof(psd), (size_t)1, 0);
printf("Total Memory: %lld\n",pst.physical_memory * pst.page_size);
printf("Free Memory: %lld\n",psd.psd_free * pst.page_size);
}
输出总存储空间和空闲存储空间。
另请参阅pstat
的HP-UX手册页。