layeracht
Goto Top

Ergebnis von system() an eine Variable übergeben

Hallo,
Ich beschäftige mich jetzt seit 2 Tagen mit C, da ich ein LCD Display unter Linux ansprechen will.

Bis jetzt läuft alles Super, aber ich hänge an der im Titel erwähnten Sache.

Ich möchte jetzt simple Systeminformationen auf dem LCD anzeigen.
Diese frage ich in C z.B. mit

system("cat /proc/meminfo | grep Mem");  

ab. Nun möchte ich das Ergebnis an das Display senden. Dazu brauche ich das Ergebnis allerdings in einer Variable.

Ist das irgendwie möglich? Vielleicht gibt es ja auch noch einen anderen Weg. Meine Kenntnisse in C sind noch sehr beschränkt.


Danke schon mal für Eure Bemühungen!

Content-Key: 147771

Url: https://administrator.de/contentid/147771

Printed on: May 1, 2024 at 21:05 o'clock

Member: dog
dog Jul 27, 2010 at 16:43:38 (UTC)
Goto Top
system ist die falsche Funktion.
man 3 popen
Member: LayerAcht
LayerAcht Jul 27, 2010 at 16:48:17 (UTC)
Goto Top
welche Funktion wäre denn besser geeignet?
system() liefert mir jedenfalls das was ich versuche, aber ich bin für jede Hilfe dankbar

EDIT: okay, Dein Befehl stand grad noch nicht da.
Ich schau mal was sich machen lässt.
Danke
Member: LayerAcht
LayerAcht Jul 27, 2010 at 17:43:43 (UTC)
Goto Top
Puh naja, ob ich das jetzt richtig habe weiß ich nicht.
Ich schreib jetzt mal was ich mir da zusammengebastelt habe:

FILE *mem = popen ("cat /proc/meminfo | grep Mem", "w");  

Falls das richtig ist:
Wie konvertiere ich das in einen string?

ich dachte da an
sprintf(memory, "%s", mem);  
jedoch passt das %s nicht.

Ich hoffe ich hab hier keinen großen Mist geschrieben face-smile
Member: dog
dog Jul 27, 2010 at 18:02:23 (UTC)
Goto Top
Member: LayerAcht
LayerAcht Jul 27, 2010 at 18:34:41 (UTC)
Goto Top
Klasse!
Es funktioniert.

Vielen Dank für Deine Hilfe