Auslesen mit fopen() auf Raspberry Pi

Gast #4056575
Lesenswert?

Hallo,

ich nutze einen Raspberry Pi 2 mit aktuelle Debian Wheezy und Geany 
(Erweiterter Texteditor).


Nun möchte ich gerne einige Werte des Betriebsystems auslesen. Hierzu 
findet man über Google fast ausschließlich Python Skripte. (Kann mich 
mit der Syntax nicht anfreunden und möchte es zeitnah auch nicht).

Nun habe ich das Problem, dass die zurückgelieferten Werte nicht der 
Realität entsprechen. Der Wert innerhalb der Datei entspricht der 
Temperatur der RaspPi CPU in °C * 1000.

/sys/class/thermal/thermal_zone0/temp // Keine Dateiendung der Datei 
selber!

1
#include <stdio.h>
2
#include <stdlib.h>
3

4
FILE *pFile;
5
  
6
int main(void)
7
{
8
  pFile = fopen("/sys/class/thermal/thermal_zone0/temp", "r");
9
  if(pFile == NULL)
10
  {
11
    printf("Konnte Datei nicht oeffnen!\n");
12
    return EXIT_FAILURE;
13
  }
14
  else
15
  {
16
    long value;
17
    
18
    fread(&value, sizeof(value), 1, pFile);
19
    fclose(pFile);
20
    
21
    printf("%ld\n", value);
22
  }
23
  
24
  return EXIT_SUCCESS;
25
}
Gast #4056597
Lesenswert?

Hallo Alexander,

danke für die Antwort. Hate in der Zwischenzeit selber einer Lösung 
geschrieben
1
int read_systeminfo(char *str)
2
  {
3
    FILE *pFile;
4
    char buffer[10];
5

6
    
7
    pFile = fopen(str, "r");
8
    
9
    if(pFile != NULL)
10
    {
11
      fread(&buffer, sizeof(buffer), 1, pFile);
12
      fclose(pFile);
13
      return atoi(buffer);
14
    }
15
    else return -1;
16
    
17
  }

Eine weitere Frage hätte ich noch. Leider lässt sich nur die CoreTemp 
direkt auslesen. Wie aber bekomme ich die Werte von vcgencmd eingelesen?

Mit python und den Beispielen kein Problem, aber wie wird sowas am 
besten in C gemacht?
https://www.saufler.de/article/raspberry-pi-system-info/
Am besten wenn gleich auch die unnötigen Werte nicht mit eingelesen 
werden.
/opt/vc/bin/vcgencmd measure_temp | tr -d "temp=" | tr -d "'C"

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren