Boost.Process在哪里?

时间:2009-11-05 21:15:29

标签: c++ boost cross-platform platform-independent boost-process

我需要执行一个程序并在c ++中检索它的stdout输出。我希望我的代码也是跨平台的。

最近我发现了针对您所有跨平台需求的Boost c ++库的精彩世界,我想我会去boost.org并阅读Boost.Process的文档。令我惊讶的是,它不存在!然后我开始弄清楚Boost给他们的跨平台库启动外部流程的名称,但到目前为止还没有找到它。

Google搜索将我带到Julio M. Merino Vidal的Boost.Process,这似乎是我正在寻找的非官方Boost图书馆。奇怪的是,我似乎无法在该网站上找到下载链接。似乎该项目最近没有任何进展。

我终于能够在external site上找到Vidal的Boost.Process的下载链接,并且现在将使用它,但是我非常惊讶于我必须付出的努力一个跨平台的c ++库,用于与外部进程交互。

那么,为什么没有正式的Boost.Process?这似乎是一个非常有价值的补充。或者我完全忽视了这里明显的解决方案?您是否可以建议其他跨平台库来管理外部流程的简单启动和交互?

9 个答案:

答案 0 :(得分:59)

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


您可以在网上找到该库的几个旧版本。它们或多或少都不相容:

  • 版本0.5(最新,截至2012年12月3日)

下载:http://www.highscore.de/boost/process0.5/process.zip

手册:http://www.highscore.de/boost/process0.5/index.html

  • 版本GSOC2010

下载:http://www.highscore.de/boost/gsoc2010/process.zip

手册:http://www.highscore.de/boost/gsoc2010/

  • 版本0.31

下载: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/

中的相同
  • I.S。版本0.1-0.4

下载:https://github.com/boost-vault/Process

  • 版本0?

下载:http://www.netbsd.org/~jmmv/process.zip

手册:http://www.netbsd.org/~jmmv/process/

还有其他版本看起来像分支:https://github.com/JeffFlinn/boost-processhttps://github.com/boost-vault/Process

有关项目的部分历史记录,请查看http://www.highscore.de/cpp/process/#introduction

答案 1 :(得分:30)

Julio M. Merino Vidal,我相信,原作者,在this 2007 post写道,他没有时间完成它。

Boris Schaeling接管了开发。这是您在http://www.highscore.de/boost/process/找到的版本。根据这个post,他仍在积极开发它。

还有另一个版本,Ilya Sokolov

对于您的其他问题:

  

您是否可以建议其他跨平台库来管理外部流程的简单启动和交互?

您可以查看列出替代品的this wiki page

根据您的需要,popen()也可以完成这项工作。

答案 2 :(得分:8)

Boost Process是今年Google Summer of Code项目之一。 GSOC 2010 Boost Process网站为http://www.highscore.de/boost/gsoc2010/

该库仍然是非官方的,但它的开发人员认为它足够稳定request formal review

答案 3 :(得分:8)

截至2012年8月18日,更新版本的Boost.Process(v0.5)已在http://www.highscore.de/boost/process0.5/

发布

希望有所帮助, 菲利普

答案 4 :(得分:4)

另一个选项可能是模块化设计的POCO,请参阅Process::launch(),其中包含Pipes >和错误

答案 5 :(得分:3)

看起来Boost.Process在sandbox area中,这表明它已被提议包含并且可能仍在继续工作,但尚未被认为是稳定的,有文档记录和/或有用的被列入主要的助推器版本。

答案 6 :(得分:2)

2015年7月,对于Boost正式审核,似乎Boost.Processscheduled

答案 7 :(得分:1)

Boost.Process的部分现在可以在Boost的几个独立库中使用:Boost.Interprocess,Program Options等。

答案 8 :(得分:1)

新的Boost流程目前处于测试阶段,将在Boost 1.64.0中提供。

http://www.boost.org/doc/libs/1_64_0_b2/doc/html/process.html