Funktion "system(str);" Rückgabewert
-
Hallo,
die Function "system(str)" liefert ja bei erfolgreichem Ausführen des System-Befehls "str" einen int Wert, nämlich einen 0.
Nun zu meiner Frage:
Ist es irgendwie möglich (evtl. durch eine andere Funktion), statt der 0, den eigentlichen Rückgabewert des System-Befehls zu bekommen?
Z. B.bei einem Aufruf von "system("dir");", den Rückgabewert:
Volume in Laufwerk C: hat keine Bezeichnung.
Volumeseriennummer: F4E8-FB38Verzeichnis von c:\Dokumente und Einstellungen\Cablenet
10.03.2004 20:22 <DIR> .
10.03.2004 20:22 <DIR> ..
26.01.2004 15:50 <DIR> Application Data
23.03.2004 20:30 <DIR> Desktop
20.03.2004 22:17 <DIR> Eigene Dateien
23.03.2004 21:51 <DIR> Favoriten
01.03.2004 11:54 <DIR> Startmenü
06.02.2004 17:51 <DIR> WINDOWS
0 Datei(en) 0 Bytes
8 Verzeichnis(se), 1.055.870.976 Bytes freiGruß Cablenet
-
Du könntest vielleicht die Ausgabe irgendwie auffangen, aber nicht über den Rückgabewert. Von der Benutzung der system()-Funktion solltest du aber sowieso absehen, nimm lieber gleich die richtigen, von deinem Betriebssystem angebotenen, API-Funktionen.
-
such mal nach pipes
-
Das ist nicht der Rückgabewert von dir, das ist die Ausgabe, die der Befehl produziert. Unter Unix kann die mit man: popen(3) auffangen, unter Windows, was du ja anscheinend fährst -- keine Ahnung. Eine Möglichkeit wär eine Umleitung in eine Datei: system("dir > datei");
-