我需要执行一个程序,并在c++中检索它的标准输出。我也希望我的代码是跨平台的。
最近我发现了Boost c++库的奇妙世界,可以满足您的所有跨平台需求,我想我应该去boost.org上阅读Boost.Process的文档。令我惊讶的是,它并不在那里!然后我继续找出Boost为他们的跨平台库提供了什么名称来启动外部进程,但到目前为止还没有找到它。
通过谷歌搜索,我找到了胡里奥·M·梅里诺·维达尔的Boost.Process,这似乎就是我正在寻找的非官方Boost库。奇怪的是,我似乎在那个网站上找不到下载链接。这个项目似乎也没有任何最新的进展。
我终于能够在external site上找到维达尔的Boost.Process的下载链接,并将暂时使用它,但我非常惊讶于我必须付出的努力才能获得一个跨平台的c++库来与外部进程交互。
那么,为什么没有官方Boost.Process呢?这似乎是一个非常有价值的补充。或者我完全忽略了显而易见的解决方案?您是否可以推荐其他跨平台库来管理外部进程的简单启动和交互?
发布于 2009-11-06 06:12:24
据我所知,胡里奥·M·梅里诺·维达尔是原著作者,他在this 2007 post上写道,他没有时间完成这本书。
开发工作由鲍里斯·谢林接管。这是您在http://www.highscore.de/boost/process/上找到的版本。根据这位post的说法,他还在积极开发它。
还有另一个版本,由Ilya Sokolov开发。
关于你的另一个问题:
您是否可以推荐其他跨平台库来管理外部进程的简单启动和交互?
您可以查看this wiki page中列出的备选方案。
根据您的需要,popen()也可以完成这项工作。
发布于 2012-09-08 11:49:35
Boost.Process是accepted for inclusion into Boost on November 9, 2016;has been included in the 1.64于2017年4月19日发布。Boost.Process现在是官方的Boost库了!
它的文档可以在这里找到:http://www.boost.org/doc/libs/1_64_0/doc/html/process.html
根据记录,2016年10月27日至2016年11月5日期间审查的来源可在GitHub上获得:
下载:https://github.com/klemens-morgenstern/boost-process
手册:http://klemens-morgenstern.github.io/process/index.html
你可以在网上找到这个库的几个老版本。它们或多或少都是不兼容的:
下载:http://www.highscore.de/boost/process0.5/process.zip
手册:http://www.highscore.de/boost/process0.5/index.html
下载:http://www.highscore.de/boost/gsoc2010/process.zip
手册:http://www.highscore.de/boost/gsoc2010/
下载:http://www.highscore.de/boost/process.zip
manual1:http://www.highscore.de/boost/process/
manual2:http://www.highscore.de/cpp/process/
我想和http://svn.boost.org/svn/boost/sandbox/process/boost/是一样的。
下载:https://github.com/boost-vault/Process
下载:http://www.netbsd.org/~jmmv/process.zip
手册:http://www.netbsd.org/~jmmv/process/
还有其他版本看起来像分支:https://github.com/JeffFlinn/boost-process和https://github.com/boost-vault/Process。
要了解该项目的部分历史,请查看http://www.highscore.de/cpp/process/#introduction
发布于 2010-11-26 09:57:36
Boost Process是今年Google Summer of Code项目之一。GSOC2010 Boost Process网站是http://www.highscore.de/boost/gsoc2010/。
这个库仍然是非官方的,但它的开发人员认为它已经足够稳定,可以使用request formal review。
https://stackoverflow.com/questions/1683665
复制相似问题