Konsolenausgabe in Datei schreiben



  • Hallo zusammen,

    bitte nicht hauen, wenn ich eine vielleicht dumme Frage stelle.

    Folgende Problemstellung:

    Ein Programm auf einem WinCE5-Gerät schreibt in die Konsole Statusmeldungen und Fehlermeldungen und zwar während der gesamten Laufzeit, oft mehrere Stunden.

    Zum Mitloggen benutzen wir derzeit TeraTerm, was natürlich bedeutet, dass der PC immer mit dem Gerät verbunden sein muss, damit man die ausgegebenen Daten dann kontrollieren kann....

    Jetzt würde ich gerne die Konsolenausgabe in ein Logfile streamen, um dann irgendwan die entstandene Datei zu kontrollieren.(mehrere MB groß)

    Habt Ihr vielleicht eine Idee, wie ich das möglichst systemschonend hin bekommen kann? ...und wenn ja... Könntet Ihr mir dabei vielleicht Hilfestellung geben?

    Danke vorab!

    Gruß
    Der Fragesteller



  • Ach ja...

    an dem Original-Proggie kann ich nix ändern, ansonsten wäre das ja einfach...
    Ich muss also über den Umweg des Auslesens der konsole gehen.



  • was hat das mit C zu tun?



  • Hat wirklich nichts mit c zu tun... außer du hast c Kenntnisse und möchtest dir ein "Elternprogramm" schreiben, welches dein Script(wie auch immer es nochmal heißt) ausführt und dann umleitet.

    Oder du nutzt auf der Komamndozeile die Weiterleitung mit ">>" bzw. ">" gefolgt von einem Datenamen.

    Wenn dir das jetzt nicht hilft, dann google doch nochmal oder werde bitte etwas ausführlicher.



  • Dieser Thread wurde von Moderator/in rüdiger aus dem Forum C (C89 und C99) in das Forum Rund um die Programmierung verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Naja... das hat schon mit C zu tun, da ich mit einer kleinen Exe dieses Fremdproggie anstossen möchte und dann die dann entstehenden Konsolenausgaben in eine Datei umleiten möchte.

    Allerdings habe ich in C bislang nur Konsolenausgaben aus eigenen Programmen verarbeitet und nicht fremde Streams gestreamt...

    Ich denke, dass das Ganze im C-Bereich doch ganz gut aufgehoben war....

    Also noch mal etwas ausführlicher...

    Ich möchte mir eine kleine App schreiben, die auf dem Fremdgerät über eine Start.bat gestartet wird, wie auch das Fremdtool, was die Konsolenausgabe erzeugt.
    Die Konsolenausgabe ist zur Zeit nur umständlich über TeraTerm auf dem PC auslesbar, wenn das Gerät dort angeschlossen ist. Bei dem Gerät handelt es sich um ein mobiles Gerät, was in der Regel immer unterwegs ist. Also bekommt man die Files nur dann, wenn man Teraterm mitloggt. Ziel ist es aber, dass mein Tool auf dem CE5-Gerät läuft und die entstehende Konsolenausgabe in eine Datei schreibt. Problem für mich dabei ist, dass fast ein konstanter Datenstrom auf die Konsole fliesst...

    Nur wie gesagt, ich hab noch keine Idee, wie ich das anpacken könnte. 😕



  • DaRe hat es schon erwähnt, was spricht gegen den konsolen- bzw. batch-aufruf

    dein_programm.exe > dein_log.txt
    

    ?



  • Wenn du wirklich scharf darauf bist, das selbst zu programmieren:

    Schreibe ein Programm welches:
    1. schließe die Ausgabe deines Programm also stdout/stderr. (womöglich close(stdout) und close(stderr) in Windows)
    2. erzeuge/öffne eine Datei(fopen("blabla.txt", "w"))
    3. lege den stdout auf die Datei(womöglich dup(dateistream) in Windows)
    4. rufe das andere Programm mittels exec-Funktionen(Siehe exec in Google) oder system Funktion auf
    5. schließe Datei

    Programmende

    Beachte die Klammern, da ich selbst nicht weiß, inwiefern man Linuxkommandos hierzu unter Windows nutzen kann.

    IM GRUNDE ist diese Vorgehensweise aber in etwa die, die du mit "Programm > Datei" auch hinbekommst.

    EDIT: Ach ja, wäre nett, wenn ein Windowsmensch die Vorgehensweise bestätigen könnte. Oder ob man zwischen STDOUT und Datei noch eine Pipe oder sowas unter Windows benötigt.



  • Danke euch für die Antworten.

    Das mit der Redirection auf eine txt-Datei muss ich noch mal probieren.


Anmelden zum Antworten