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-FB38

    Verzeichnis 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 frei

    Gruß 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");




Anmelden zum Antworten