如何使用 C 代码在 OpenBSD 中查看我的 CPU mhz 和 Free mem(如 free)?
问问题
1246 次
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 回答