2010-11-19 29 views

回答

1

免费使用source。 CPU时钟速度更棘手。 dmesg | grep CPU | grep Hz将在一个shell中完成它。你可能想尝试解析你的系统日志。

1

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

man popen 
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; 
}