通过C++与基于shell的程序交互

Interact with a shell based program through C++

本文关键字:程序 交互 shell C++ 通过      更新时间:2023-10-16

我正在尝试编写一个C++程序,在该程序中,它可以与另一个基于shell的程序(商业工具)交互,发送命令并从中获取结果。我听说了几个选项,我想知道每个选项的优点/缺点。

1) 我可以用"期望"来为我做这份工作。2) 我可以使用IPC和共享内存(我很熟悉)的概念来做这件事。

如果有人知道这两种选择是如何运作的,或者有任何其他建议,我将不胜感激。

感谢

我做过的一件非常有效的事情是使用socketpair()创建一个套接字,然后使用fork+exec启动子进程,将其stdinstdout重定向到对的远端。此后,您只需要通过双向套接字连接一个远程进程,这是非常标准的东西(尽管您必须记住正确整理子进程)。