답변:
이 답변에/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
작동하지 않습니다 . 열 커널 드라이버가 존재하기 전에 온도를 읽을 수있었습니다. mailbox
GPU에서 실행되는 VideoCore OS와 통신하기 위해 호출 된 RaspberryPi 에서 사용 가능한 특수 통신 메커니즘을 사용하고 있습니다 . 여기에 부분적으로 문서화되어 있습니다 .