我正在尝试编写一个C ++程序,在该程序中它可以与另一个基于shell的程序(商业工具)进行交互并发送命令并从中获取结果。 我听说过几个选项,我想知道每个选项的优点/缺点。
1)我可以用“期待”为我做这份工作。 2)我可以使用IPC和共享内存(我熟悉的)的概念来做到这一点。
如果有人对这两个选项如何运作或有任何其他建议有任何了解,我将不胜感激。
由于
答案 0 :(得分:0)
我做过的一件非常有效的事情是使用socketpair()
来创建套接字,然后使用fork + exec启动子进程,并将stdin
和stdout
重定向到这一对的远端。此后,您只需通过双向套接字连接远程进程,这是非常标准的内容(尽管您必须记住要正确整理子进程)。