如何计算hp-ux上的总空闲物理内存

时间:2014-02-18 09:06:21

标签: c hp-ux

我想制作一个shell脚本或c程序来计算可用内存,就像命令free在linux上为hp-ux做的那样。

在hp-ux默认安装中,只有我知道可以计算可用内存的命令是vmstat,或者最终是top。

是否有任何c api允许用户计算所有可用内存?或者最终确定系统上所有可用物理内存的方法,然后对所有使用的内存求和并计算免费的Phys内存?

1 个答案:

答案 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手册页。