我正在尝试找到一种方法来接收外壳的输出,然后返回输出,但是来自不同的前端接口?我正在尝试将 Linux 终端合并到一个潜在的应用程序中。
答案1
控制应用程序需要打开两个管道,使用两次pipe()。然后它派生一个子进程。
虽然仍在原始代码中,但父级关闭一个管道的写入端和另一个管道的读取端。
同时,子进程关闭这些管道的相对两端,并使用 dup2() 将它们重新分配给流 0 和 1。这为父进程留下了一个写入子进程 stdin 的管道,以及一个从子进程 stdout 读取的管道。
最后,子 exec 是所需的 shell,其中包含所需的任何参数。
答案2
expect
是工具。读man expect
https://linux.die.net/man/1/expect