Answers:
您可以阅读此答案中/sys/class/thermal/thermal_zone0/temp
指定的文件。从命令行开始进行测量,并使用读取文件。但是您应该只可以用C打开文件。温度以摄氏度为单位,以ASCII数字返回。也许是这样,未经测试:)cat
FILE *temperatureFile;
double T;
temperatureFile = fopen ("/sys/class/thermal/thermal_zone0/temp", "r");
if (temperatureFile == NULL)
; //print some message
fscanf (temperatureFile, "%lf", &T);
T /= 1000;
printf ("The temperature is %6.3f C.\n", T);
fclose (temperatureFile);
open()
和,read()
而应使用YMMV。还有一个“ libsysfs”,但是它已经被废弃了,内核开发人员已经明确告诉人们不要使用它。
正如@Frepa所说,RaspberryPi现在有内核热驱动程序,因此最简单的方法是使用它。据我所知,这不是可行的方法vgencmd
。即使在存在热内核驱动程序之前,它也能够读取温度。它使用RaspberryPi上可用的特殊通信机制mailbox
来与运行在GPU上的VideoCore OS进行通信。它部分记录在这里。