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