Chinaunix首页 | 论坛 | 博客
  • 博客访问: 484210
  • 博文数量: 55
  • 博客积分: 1867
  • 博客等级: 上尉
  • 技术积分: 587
  • 用 户 组: 普通用户
  • 注册时间: 2006-12-29 01:33
文章分类

全部博文(55)

文章存档

2013年(1)

2012年(2)

2011年(16)

2010年(11)

2009年(5)

2008年(10)

2007年(8)

2006年(2)

分类: BSD

2010-02-04 01:58:45

  最近给儿子安装LEGO Desginer后,发现风扇响得厉害,用sysctl看CPU温度又不是很方便,于是在原来读电池的代码里加了几行,顺便把CPU温度也读出来,

int temp0, temp1;

sysctlbyname("dev.cpu.0.temperature", &temp0, &len, NULL, 0);
sysctlbyname("dev.cpu.1.temperature", &temp1, &len, NULL, 0);


温度是读出来了,可显示的时候,发现是一个奇怪的值,比如3242,这时对应用sysctl看到的值是51度,不知道sysctl是如何转换的,于是再看sysctl的源码发现转换的公式是(temp-2732)/10。一下子没有反应过来这个2732是什么魔数。
  想到温度测量都是用温度传感器,于是就找了些温度传感器的资料看,比如最通用的AD590,看了以后才反应过来,实际这个2732就是热力学的绝对零度(-273.15摄氏度)。


阅读(1933) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

hoodng2010-02-11 01:26:09

$sysctl -a | grep temperature

chinaunix网友2010-02-10 10:22:58

你好,请教sysctl读取CPU温度的命令是什么呢? sysctl xxx?