在C中显示内存和cpu

时间:2010-11-19 15:17:43

标签: c openbsd

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

3 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分:1)

免费使用source。 CPU时钟速度比较棘手。 dmesg | grep CPU | grep Hz将在shell中执行此操作。您可能想尝试解析系统日志。

答案 2 :(得分:1)

查看popen函数。它创建一个管道,分叉给定的shell命令,并返回一个可以读取的文件描述符。

man popen