【问题标题】:interact (stdin/out) with command line programs at runtime in C在 C 中运行时与命令行程序交互(stdin/out)
【发布时间】:2010-01-11 18:51:28
【问题描述】:

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

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

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

【问题讨论】:

    标签: c unix sftp pty


    【解决方案1】:

    高兴! Expect 的创建正是为了解决您的问题。它基于 Tcl,不太好用,但工具好用,设计得非常好,而且创建该工具的 Don Libes 有一本好书。

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

    【讨论】:

      【解决方案2】:

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

      例如,python 中的 subprocess 模块,或 Ruby 中的 Popen... 网络上也有很多参考资料可以帮助您。

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

      【讨论】:

        【解决方案3】:

        与其调用sftp(1),不如使用libssh?它有完整的sftp subsystem 支持。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-12-18
          • 2018-03-16
          • 2010-11-04
          • 1970-01-01
          • 2010-11-28
          • 1970-01-01
          相关资源
          最近更新 更多