Consolenausgabe abfangen system()

ruNN0r

Erfahrenes Mitglied
Hallo,
ich programmiere schon etwas länger in C (kein ++) nur meist auf Embedded systems. Jetzt möchte ich mir ein kleines Linux Programm schreiben für gewisse Akku-Informationen usw. meines Laptops. Dazu wollte ich z.B. die acpi verwenden. Diese lässt sich im Terminal ausführen und gibt mir einige Informationen zurück die ich verwenden möchte. In C kann ich via system() diesen Befehl ausführen aber mich interessiert ja nicht nur die ausführung des Befehls sondern auch was dieser Befehl zurückgibt.
Code:
xy@xy-cc:~$ acpi
Battery 0: Charging, 62%, 00:40:39 until charged
Wie kann ich dies bewerkstelligen?
Geht das überhaupt mit der System() oder gibt es da einen anderen Befehl?
Meine Suchbegriffe waren wohl nicht so passend, zumindest habe ich nie etwas passendes gefunden.

Ich hoffe auf eure Hilfe! Vielen dank.
 
Hi

So wie es für Dateien fopen/fclose gibt, gibt es für gepipte Prozesse popen/pclose
C++:
FILE *f = popen("acpi","r");
if(f == NULL)
{
    /*Fehler*/
}

/* Mit den normalen Lesefunktionen die Ausgabe lesen, bis "Datei"-Ende/EOF */

pclose(f);
 

Neue Beiträge

Zurück