在C中运行时与命令行程序交互(stdin / out)

时间:2010-01-11 18:51:29

标签: c unix sftp pty

我认为我想做的事情叫做GUI /命令行换行sftp(1)。我需要一种简单的方法来启动该程序并在运行时对其输出做出反应。此外,我必须能够向其发送输入,需要完全交互。

我尝试了forkpty(模拟TTY),但是没有一个很好的例子可以找到使用forkpty来完成那个工作,而是有几个警告关于参数和建议不要使用它的溢出。另一个奇怪的事情是windowsize参数...

请给我一个或多个关于如何打电话的例子。与C中的命令行程序交互或在iPhone GUI中集成sftp的其他方式

3 个答案:

答案 0 :(得分:2)

飘柔!创建Expect是为了解决您的问题。它基于Tcl,它不是那么令人愉快,但是工具很舒服,设计得非常好,而Don Libes则是一本很好的书,他创造了这个工具。

Expect脚本是用Tcl编写的,但很容易将Tcl脚本集成到C程序中,这样C程序的其他部分甚至都不知道正在使用Tcl。

答案 1 :(得分:1)

您是否使用过任何流行的脚本语言Ruby / Python / Perl / etc?他们都有非常全功能的图书馆,可以打开并与其他流程进行交流。

例如,python中的subprocess模块,或者Ruby中的Popen ...网上也会有很多参考资料来帮助你。

如果还需要GUI,您可以查看GTK个扩展程序

答案 2 :(得分:0)

而不是调用sftp(1),如何使用libssh?它具有完整的sftp subsystem支持。