Ausgabe eines Programms, im eigenen Programm verwenden



  • Tach,

    ich möchte ein Programm schreiben mit dem ich direkt den Output (sehr viele std::cout << ...) eines anderen Programms, welches vom ersten Programm gestartet wurde, auslesen kann.

    System() gibt ja bekanntlich keinen output als Rückgabewert und mit der WinApi kenn ich mich nicht genug aus um sie zu benutzen... gibt es noch Alternativen dafür?

    Meine einzigste Lösung ist bisher das andere Programm per Batch-Datei mit system() zu starten um eine Outputfile per "programm.exe >> output.txt" zu erhalten, was mir aber "relativ" "umständlich" ist.

    Thx Razor



  • Die Loesung ist pipe. Wie Windows das handhabt, weiß ich aber nicht.



  • Thx knivil 😃

    mhh leider ist das bestimmt mit in der Winapi enthalten, könnte jmd ein kurzes Beispiel für einen Pipe geben? Wie schon gesagt ich hab bisher gar nichts mit der Winapi geleistet xD



  • Nein, das hat nichts mit der WinAPI zu tun wenn ich knivil nicht falsch verstehe. Das Stichwort wäre dieser Operator:

    |
    

    Damit kannst du den Output eines Programms in ein anderes umleiten (du siehst dann allerdings den Output nicht mehr).
    Probier einfach mal aus was du wenn du dein Programm so aufrufst in als Argumente kriegst:

    programm1.exe | programm2.exe
    

    Was auf jeden Fall geht: Output vom ersten Programm in eine Textdatei schreiben die dann vom zweiten Programm wieder ausgelesen wird:

    programm1.exe > test.txt
    

Log in to reply