Interact (stdin / out) mit Kommandozeilenprogrammen zur Laufzeit in C
Frage
ich glaube, das, was ich will, ist zu tun genannt GUI / Kommandozeilenumbruch sftp (1). Ich brauche eine einfache Möglichkeit, das Programm zu starten und an seinem Ausgang reagiere beim Laufen. Zusätzlich muss ich in der Lage sein Eingang zu senden, um es, volle Interaktion erforderlich ist.
Ich habe versucht, forkpty (emulierten TTY), aber es war nicht ein gutes Beispiel auffindbaren mit forkpty für diesen Job, anstatt mehrere Warnungen über Überläufe in Zank und Advisories es nicht zu benutzen. Eine weitere seltsame daran war, die Fenstergröße Argument ...
Bitte geben Sie mir entweder einen oder mehrere Beispiel (e) über den Umgang mit Kommandozeilen-Programme in C oder eine andere Art und Weise zu integrieren SFTP in einem iPhone GUI
anrufen & interactLösung
Rejoice! Expect wurde erstellt genau Ihr Problem zu lösen. Es basiert auf Tcl, die nicht so angenehm ist, aber das Werkzeug ist angenehm, es ist wirklich gut gestaltet, und es ist ein gutes Buch von Don Libes, die das Tool erstellt.
Expect-Skripte wird in Tcl geschrieben, aber es ist total einfach, ein Tcl-Skript in ein C-Programm zu integrieren, so dass andere Teile des C-Programms nicht einmal wissen, dass Tcl verwendet wird.
Andere Tipps
Haben Sie eine der populären Skriptsprachen Rubin / Python / Perl / etc? Sie alle haben ziemlich voll funktions Libraires zum Öffnen und die Kommunikation mit anderen Prozessen.
das subprocess
Modul in Python zum Beispiel, oder Popen
in Ruby ... es gibt auch eine Menge Referenzmaterial rund um das Internet sein würde, Ihnen zu helfen.
Wenn ein GUI wurde auch erforderlich Sie unter GTK Erweiterungen
aussehen könnte Statt Aufruf sftp(1)
, wie über die Verwendung von libssh ? Es hat die volle SFTP-Subsystem Unterstützung.