2010-01-11 17 views
2

Je pense que la chose que je veux faire est appelée GUI/ligne de commande wrapping sftp (1). J'ai besoin d'un moyen facile de démarrer ce programme et de réagir sur sa sortie en cours d'exécution. De plus, je dois être capable d'envoyer des données, une interaction complète est requise.interact (stdin/out) avec les programmes de ligne de commande à l'exécution en C

J'ai essayé forkpty (TTY émulé), mais il n'y avait pas un bon exemple de recherche utilisant forkpty pour ce travail, mais plusieurs avertissements concernant les débordements dans les arguments et les avis de ne pas l'utiliser. Une autre chose étrange à ce sujet est l'argument windowsize ...

S'il vous plaît soit me donner un ou plusieurs exemple (s) sur la façon d'appeler & interagir avec les programmes de ligne de commande en C ou d'une autre façon d'intégrer sftp dans une interface graphique iPhone

Répondre

2

Réjouissez-vous! Expect a été créé pour résoudre exactement votre problème. C'est basé sur Tcl, ce qui n'est pas très agréable, mais l'outil est agréable, c'est vraiment bien conçu, et il y a un bon livre de Don Libes, qui a créé l'outil.

Les scripts attendus sont écrits en Tcl, mais il est totalement facile d'intégrer un script Tcl dans un programme C de sorte que d'autres parties du programme C ne savent même pas que Tcl est utilisé.

1

Avez-vous utilisé l'un des langages de script populaires Ruby/Python/Perl/etc? Ils ont tous des libraires assez complets pour s'ouvrir et communiquer avec d'autres processus. Le module subprocess en python par exemple, ou Popen en Ruby ... il y aurait aussi beaucoup de matériel de référence sur le web pour vous aider.

Si une interface graphique a également été nécessaire, vous pouvez regarder GTK extensions