Ich habe eine ausführbare Datei in Linux, die mit stdin/stdout interagieren kann. Ich versuche, ein Programm in C++ zu schreiben, das dieses Programm interaktiv aufrufen, Befehle an seine Standardeingabe senden und seine Standardausgabe erfassen kann.C++ Linux Interact Ein anderes Programm stdin/stdout
Ich bin wirklich verwirrt worden. Ich möchte mein Programm nicht abzweigen (tue ich?). Ich möchte, dass mein Programm in der Lage ist, den "Client" zu starten, Daten zu senden, Ausgaben zu erhalten, mehr Daten zu senden, mehr Ausgaben zu erhalten, ... und den "Client" zu schließen.
P.S. Ja, ich bin mir sicher, dass dies schon einmal gefragt wurde, aber ich habe ein paar Stunden damit verbracht, mich am Kopf zu kratzen - wahrscheinlich nicht mit den richtigen Schlüsselwörtern.
Möchten Sie dies mit Low-Level-Systemaufrufen schreiben oder können Sie Bibliotheken verwenden? Eine Option ist die Verwendung von [libexpect] (http://docs.activestate.com/activetcl/8.5/expect/libexpect.3.html) –
@MarkPlotnick Es ist ein persönliches Projekt, also ist alles, was dies einfacher macht, der richtige Weg . – CircuitGuy
@MarkPlotnick Eigentlich ja, das funktioniert wirklich gut! Ich habe auf den Aufruf von exp_popen() aus tcl8.6 umgeschaltet. Dies öffnet einen Prozess und gibt ein Dateihandle zurück, von dem ich wie jede andere Datei lesen/schreiben kann. – CircuitGuy