Chapter 4. 系统信息

Table of Contents
4.1. 怎样知道我的系统有多少存储器容量?
4.2. 我怎样检查一个用户的口令?

4.1. 怎样知道我的系统有多少存储器容量?

这是另一个‘经常未回答的问题’。在多数情况下,你不该试图去找到答案.

如果你必需得到答案,问题的答案通常是有的,但非常依赖于不同的操作系统。 例如,在Solaris中,可以用 `sysconf(_SC_PHYS_PAGES)' 和 `sysconf(_SC_PAGESIZE)'; 在FreeBSD中,可以用`sysctl()'; 在Linux中可以通过读取并处理`/proc/meminfo'得到 (使用该文件时需小心你的程序,它要接受历史上任何不同合法格式). 其它的操作 系统有各自的方式,我也没有意识到更多可移植的方法。

在HP-UX(9版和10版)中,可以使用如下的代码:

     struct pst_static pst;

     if (pstat_getstatic(&pst, sizeof(pst), (size_t) 1, 0) != -1)
     {
         printf(" Page Size: %lu\n", pst.page_size);
         printf("Phys Pages: %lu\n", pst.physical_memory);
     }