interagir (stdin / out) avec des programmes de ligne de commande lors de l'exécution de C

StackOverflow https://stackoverflow.com/questions/2044093

  •  20-09-2019
  •  | 
  •  

Question

Je pense que la chose que je veux faire est appelé emballage GUI / ligne de commande sftp (1). Je besoin d'un moyen facile de démarrer ce programme et de réagir sur sa sortie lors de l'exécution. De plus, je dois être en mesure d'envoyer à l'entrée, est nécessaire interaction complète.

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

S'il vous plaît me donner soit un ou plusieurs exemple (s) sur la façon d'appeler et d'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

Était-ce utile?

La solution

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

Expect scripts sont écrits en Tcl, mais il est tout à fait facile d'intégrer un script Tcl dans un programme C tel que d'autres parties du programme C ne savent même pas que Tcl est utilisé.

Autres conseils

Avez-vous utilisé l'un des langages de script populaires Ruby / Python / Perl / etc? Ils ont tous assez complet Libraires en vedette pour l'ouverture et la communication 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 autour du Web pour vous aider.

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

Au lieu d'appeler sftp(1), que diriez-vous en utilisant libssh ? Il a plein sftp sous-système soutien.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top