interactuar (entrada estándar de entrada / salida) con los programas de línea de comandos en tiempo de ejecución en C

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

  •  20-09-2019
  •  | 
  •  

Pregunta

Creo que lo que quiero hacer se llama línea de interfaz gráfica de usuario de SFTP / comando de envolver (1). Necesito una manera fácil de iniciar ese programa y reaccionar en su salida mientras se ejecuta. Además tengo que ser capaz de enviar la entrada a la misma, se requiere la interacción completa.

He intentado forkpty (emulado TTY), pero no había un buen ejemplo localizable mediante forkpty para ese trabajo, en lugar de varias advertencias sobre desbordamientos en los avisos en los argumentos y no usarlo. Otra cosa rara de este fue el argumento WindowSize ...

Por favor, dame ya sea uno o muchos ejemplos (s) sobre cómo llamar y interactuar con los programas de línea de comandos en C u otra forma de integrar SFTP en una interfaz gráfica de usuario iPhone

¿Fue útil?

Solución

Alégrate! Expect fue creado para resolver su problema exactamente. Está basado en Tcl, que no es tan agradable, pero la herramienta es agradable, está muy bien diseñado, y hay un buen libro de Don Libes, que creó la herramienta.

Esperar guiones están escritos en Tcl, pero es totalmente fácil de integrar un script Tcl en un programa de C tal que otras partes del programa en C ni siquiera saben que Tcl está siendo utilizado.

Otros consejos

Ha utilizado cualquiera de los lenguajes de script populares de Ruby / Python / Perl / etc? Todos ellos tienen libraires destacados bastante completo para la apertura y la comunicación con otros procesos.

subprocess el módulo en Python por ejemplo, o Popen en Ruby ... también habría una gran cantidad de material de referencia en la web para ayudarle a salir.

Si también se requiere una interfaz gráfica de usuario se puede mirar en GTK extensiones

En lugar de llamar sftp(1), cómo sobre el uso de libssh ? Tiene SFTP subsistema apoyo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top