PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : system() Funktion in C



Los_Andros
04-05-2007, 11:48
Hallo zusammen,
ich schreibe gerade einen kleinen Fingerprint für ein System. Jetzt setzt sich das aus mehreren Teilen zusammen unter anderem soll von dem C Programm ein Shellskript aufgerufen werden, dass das Linux System bestimmt. (Also Red Hat, SuSE, Debian und co).

Dafür hätte ich gerne die Funktion system() verwendet.

Nun meine frage, wie bekomme ich den Output der System Funktion in eine Variable?

systeminfo = system("./determine_os ");

systeminfo beinhaltet dann leider eine Zahl, also wohl den Returncode meines Shellskripts. Den Output schreibt system() direkt nach STDOUT.

Danke schonmal im Voraus

lokicall
04-05-2007, 16:32
Du willst die Ausgabe eines Programmes in einer Variable speichern.
Ich hatte ein ähnliches Problem, das ich mit popen() gelöst hatte.

gorba
07-05-2007, 09:52
Wie oben angesprochen über eine pipe zu lösen!

jan61
07-05-2007, 22:37
Moin,

abgesehen von dem Tip mit popen() - warum holst Du Dir die Infos nicht direkt über eine C-Funktion?

man 2 uname
zeigt Dir, wie das geht. Dann sparst Du Dir einen zusätzlichen Prozess (den system() aufmacht).

Tipp am Rande: Wenn ich nach nützlichen Funktionen suche, dann nutze ich gern
apropos
Bei Deiner Frage fiel mir "uname" ein - das liefert ja solche Infos auf der Kommandozeile; ein
apropos uname brachte dann die C-Funktion zum Vorschein.

Jan