2

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

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

请给我一个或多个示例,说明如何在 C 中调用和与命令行程序交互,或者在 iPhone GUI 中集成 sftp 的另一种方式

4

3 回答 3

2

麾! Expect的创建正是为了解决您的问题。它基于 Tcl,不是那么令人愉快,但该工具令人愉快,它设计得非常好,并且创建该工具的 Don Libes 有一本好书。

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

于 2010-01-11T19:15:17.053 回答
1

您是否使用过任何流行的脚本语言 Ruby/Python/Perl/等?它们都有功能齐全的库,用于打开和与其他进程通信。

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

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

于 2010-01-11T19:50:43.860 回答
0

而不是调用sftp(1),使用libssh怎么样?它具有完整的sftp 子系统支持。

于 2010-01-12T01:41:00.810 回答