PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : System() als Variable speichern



Primusio
30-10-2002, 13:27
Hi, ich poste hier glaube ich das erste mal in einem eigenen Thema weil ich zur ZEit ein kleines Problem habe. Ich bin ein Anfänger was C angeht aber ich komme voran.

Nun zu meinem kleinen Problem.
Ich programmiere mit C und nCurses, ein kleines Proggy, welches die Ausgabe folgenden Befehls als Variable annehmen soll.

system("dmesg | fgrep "ATA" | fgrep "DISK" | cut -d "," -f 1 | cut -d ":" -f 2");

Doch wie stelle ich das unter C an ???
Kann mir bitte jemand helfen ? Wäre wirklich zu gütig.

MfG
Peter

anda_skoa
30-10-2002, 13:43
Das geht mit system so nicht.

Was spricht dagegen, die Datei /var/log/dmesg zu lesen und dir die gewünschten Zeilen zu holen?

Ciao,
_

Primusio
30-10-2002, 13:50
Und wie stelle ich das an ?

MfG
Primusio

Primusio
30-10-2002, 13:54
Mir ist gerade eingefallen, so kann ich es aber auch nicht machen.

Ich will dieses Programm bei einer Linux-Startdiskette ausführen lassen und nicht alle legen diese LOG an.
Ich müsste es schon direkt aus dem System lesen lassen können. Genau wie die Partitionstabelle etc.

MfG
Primusio

anda_skoa
30-10-2002, 14:16
Hmm.
Und frep cut und eine Shell gibt es?

Du kannst entweder den obigen Befehl mit system machen und die Ausgabe in eine temoräre Datei leiten und diese lesen, oder du machst es wie in diesem Thread beschrieben:
http://www.mrunix.de/forums/showthread.php?s=&threadid=30285

Nur mußt du stdout umleiten nicht, stderr
Ciao,
_