Programm aus Programm steuern



  • Guten Morgen.

    Ich möchte ein Programm schreiben, aus dem ich ein anderes Programm aufrufe und diesem dann 2,3 Befehle zusende.
    Ich weiss bisher, dass ich Programm zB. mit system() aufrufen kann.
    Das aufzurufende Programm ist ein KonsolenProgramm, wird also via Tastatur gesteuert...
    Nun müsste ich ja irgendwie die Standardausgabe aus meinem Programm auf das aufzurufende legen.
    Kann mir jemand vielleicht nen Tip geben ?

    Danke im vorraus.



  • Das ist ja lustig, daß du das jetzt fragst. Gerade habe ich in einem anderen Thread im Prinzip genau das beantwortet. Schau mal meine Antwort da http://www.c-plusplus.net/forum/viewtopic-var-t-is-158718.html.

    Da geht es darum, die Ausgabe eines Programmes abzufangen. Du willst die Eingabeseite steuern. Im Prinzip ist das das Selbe, nur daß Du statt des Standardoutputs den Standardinput haben willst.

    Meine Empfehlung also nochmal: http://pstreams.sourceforge.net/.

    Gruß

    Tntnet



  • Wenn man beide Programme selbst schreibt, ist ein einfacher und nicht unüblicher Weg die Daten über 127.0.0.1 auszutauschen.



  • 127.0.0.1 wäre mit Kanonen auf Spatzen geschossen. Der zu steuernde Prozeß müsste ein listen und accept durchführen und mit allen möglichen Fehlerzuständen umgehen. Auch parallele Zugriffe von mehreren Clients wären möglich. Dahingehend wären es problematisch, mehrere Instanzen zu starten. Man müsste dann einen freien Port ermitteln und diesen beiden Prozessen mitteilen.

    In einem so einfachen Fall, wie diesen, in dem ein Prozeß das Kind des anderen ist, ist die pipe weitaus einfacher.

    Tntnet


Anmelden zum Antworten