C system("gpio read 7") wie die Rückgabe auswerten?

Gast #3526601
Lesenswert?

Hallo,

ich bin gerade etwas am basteln...Ich habe ein Hauptprogramm das kleine 
Scripe aufruft.

Ich benutze dafür die system() Funktion:

Z.B:
system("gpio read 7");

Aber wie kann ich die Ausgabe des Scriptes auswerten? Die Funktion 
ansich gibt doch nur zurück ob sie erfolgreich war oder??



Lars
Gast #3526882
Lesenswert?

Ja, popen() dürfte die einfachste Variante sein.
Mit fork() und exec() ist es etwas mehr Aufwand und man braucht außerdem 
noch  dup(), dup2() und pipe(). Letztendlich macht popen() es intern 
auch nicht viel anders. Um mal etwas mehr Verständnis für die 
Funktionsweise von Un*x zu bekommen, ist es aber mal ganz interessant, 
es zu Fuß zu machen.
Gast #3528912
Lesenswert?

wenns nur ums Aufrufen bestimmter Programme geht, so würde ich das als 
Shell Skript realisieren.
Shell Skripte sind der Kleber, der Linux zusammenhält.

Ansonsten würden sich, wie bereits erwähnt, diverse 
Interprozesskommunikationsarten anbieten, wie z.B. Pipes.

Du kannst auf GPIO aber auch direkt zugreifen, die GPIO Treiber 
registrieren sich im /sys/class/gpio Dateisystem. Du brauchst die dort 
liegenden Dateien einfach nur mit open öffnen, mit write Werte 
reinschreiben, und dann einfach wieder close aufrufen.

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