1

如何使用 C 代码在 OpenBSD 中查看我的 CPU mhz 和 Free mem(如 free)?

4

3 回答 3

3

使用 BSD sysctl(3) 免费获取实时 CPU 频率和 posix sysconf(3)。

#include <stdio.h>
#include <sys/param.h>
#include <sys/sysctl.h>
#include <unistd.h>

main (argc, argv)
        char **argv;
{
        size_t sz;
        auto psize, cpuspeed, getMhz[] = {CTL_HW, HW_CPUSPEED};
        sz = sizeof(cpuspeed);
        sysctl(getMhz, 2, &cpuspeed, &sz, NULL, 0);
        printf("CPU: %d MHz Free: %ld MB\n", cpuspeed, (sysconf(_SC_AVPHYS_PAGES)*sysconf(_SC_PAGESIZE))>>20
);
        return 0;
}
于 2012-02-05T06:36:08.953 回答
1

popen功能。它创建一个管道,派生一个给定的 shell 命令,并返回一个可以读取的文件描述符。

man popen
于 2010-11-19T16:31:30.363 回答
1

免费使用源代码。CPU时钟速度更棘手。dmesg | grep CPU | grep Hz将在外壳中完成。您可能想尝试解析系统日志。

于 2010-11-19T15:28:48.060 回答