我想知道是否有一个跨平台(Windows、Linux、BSD)库,我可以用它异步启动一个进程,并为其标准管道提供类似
iostream
的包装器。
我希望它能够知道进程何时终止。
谢谢你。
您可以使用 2 个库:
Q流程
您可以使用 Qt 工具包中的 QProcess 类。 更多信息可以在这个 stackoverflow 问题 和 qt 库 上找到。
libexecstream
这个库比Qt更轻,并且是跨平台的
其他
如果您只想要一个控制台应用程序,您可以使用旧的基于 popen 的分支(版本 0.17),它使用 Win32 函数 _popen() 和 _pclose(),但这些在 GUI 程序中不起作用(并且可能会毁掉您的程序) PC,如果 Windows 不适合您。)此版本不具备该库的大部分功能,并且不再维护或测试。
令我惊讶的是,没有有一个轻量级库可以实现跨平台。所以我决定创建一个库,因为无论如何我都需要该功能。
这里是图书馆 https://github.com/Neko-Box-Coder/System2
它适用于 posix 和 windows 系统。 (它不使用 Windows 的 popen,所以它也应该在 GUI 应用程序中工作)
它可以从命令发送输入并接收输出。
并有阻塞和非阻塞版本。
它同时具有仅标头和源版本