系统(); 能够在 PATH 中调用程序。如何将标准输入从 GUI 上的文本字段读取到命令行程序,如 ftp、sftp ... 并带有自己的提示?
System() 等待程序退出,但 ftp 没有用户交互。也无法创建批处理文件,因为它在运行时仅在启动时读取一次。
如果可能,请用C for UNIX 编写解决方案,如果不是任何其他语言。
系统(); 能够在 PATH 中调用程序。如何将标准输入从 GUI 上的文本字段读取到命令行程序,如 ftp、sftp ... 并带有自己的提示?
System() 等待程序退出,但 ftp 没有用户交互。也无法创建批处理文件,因为它在运行时仅在启动时读取一次。
如果可能,请用C for UNIX 编写解决方案,如果不是任何其他语言。
这是可能的,但并不是那么容易。你可以看看Expect。它是一种自动与非 GUI 工具交互的编程语言。Expect 库已嵌入到 Python 等其他东西中,因此我认为您可以将其嵌入到 C 中的代码中。
我知道的最简单的方法是使用forkpty()
with exec()
。forkpty()
返回一个文件描述符,该描述符被重定向到程序 stdin 和 stdout。写入文件描述符的任何内容都是程序的输入。程序写入的任何内容都可以从文件描述符中读取。