草庐IT

c++ - Boost.Process 在哪里?

coder 2023-05-01 原文

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

最近发现了 Boost c++ 库可以满足您所有跨平台需求的美妙世界,我想我应该去 boost.org 并阅读 Boost.Process 的文档。令我惊讶的是,它不存在!然后我开始弄清楚 Boost 给他们的跨平台库起什么名字来启动外部进程,但到目前为止还没有找到它。

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

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

那么,为什么没有官方的Boost.Process呢?看起来这将是一个非常有值(value)的补充。还是我完全忽略了这里明显的解决方案?您能否推荐其他跨平台库来管理外部进程的简单启动和交互?

最佳答案

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

手册1:http://www.highscore.de/boost/process/

手册2: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

关于c++ - Boost.Process 在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1683665/

有关c++ - Boost.Process 在哪里?的更多相关文章

  1. ruby-on-rails - 如何优雅地重启 thin + nginx? - 2

    我的瘦服务器配置了nginx,我的ROR应用程序正在它们上运行。在我发布代码更新时运行thinrestart会给我的应用程序带来一些停机时间。我试图弄清楚如何优雅地重启正在运行的Thin实例,但找不到好的解决方案。有没有人能做到这一点? 最佳答案 #Restartjustthethinserverdescribedbythatconfigsudothin-C/etc/thin/mysite.ymlrestartNginx将继续运行并代理请求。如果您将Nginx设置为使用多个上游服务器,例如server{listen80;server

  2. ruby - 使用 `+=` 和 `send` 方法 - 2

    如何将send与+=一起使用?a=20;a.send"+=",10undefinedmethod`+='for20:Fixnuma=20;a+=10=>30 最佳答案 恐怕你不能。+=不是方法,而是语法糖。参见http://www.ruby-doc.org/docs/ProgrammingRuby/html/tut_expressions.html它说Incommonwithmanyotherlanguages,Rubyhasasyntacticshortcut:a=a+2maybewrittenasa+=2.你能做的最好的事情是:

  3. ruby - 如何计算 Liquid 中的变量 +1 - 2

    我对如何计算通过{%assignvar=0%}赋值的变量加一完全感到困惑。这应该是最简单的任务。到目前为止,这是我尝试过的:{%assignamount=0%}{%forvariantinproduct.variants%}{%assignamount=amount+1%}{%endfor%}Amount:{{amount}}结果总是0。也许我忽略了一些明显的东西。也许有更好的方法。我想要存档的只是获取运行的迭代次数。 最佳答案 因为{{incrementamount}}将输出您的变量值并且不会影响{%assign%}定义的变量,我

  4. ruby-on-rails - ActiveRecord::Associations::CollectionProxy 从哪里获取.each 实例方法? - 2

    假设我有模型Topics和Posts,其中Topichas_many:posts和Postbelongs_to:topic。此时我的数据库中已经有了一些东西。如果我进入Rails控制台并输入Topic.find(1).posts我相信我得到了一个CollectionProxy对象。=>#]>我可以对此调用.each以获得枚举器对象。=>#]:each>我对CollectionProxy如何处理.each感到困惑。我意识到它在某些时候是继承的,但我一直在阅读API文档,他们并没有说得很清楚CollectionProxy是从什么继承的,除非我遗漏了一些明显的东西。Thispage似乎并没有

  5. arrays - Ruby 数组 += vs 推送 - 2

    我有一个数组数组,想将元素附加到子数组。+=做我想做的,但我想了解为什么push不做。我期望的行为(并与+=一起工作):b=Array.new(3,[])b[0]+=["apple"]b[1]+=["orange"]b[2]+=["frog"]b=>[["苹果"],["橙子"],["Frog"]]通过推送,我将推送的元素附加到每个子数组(为什么?):a=Array.new(3,[])a[0].push("apple")a[1].push("orange")a[2].push("frog")a=>[[“苹果”、“橙子”、“Frog”]、[“苹果”、“橙子”、“Frog”]、[“苹果”、“

  6. ruby-on-rails - 闪存消息存储在哪里? - 2

    我以为它们存储在cookie中-但不,检查cookie没有任何结果。session也不存储它们。那么,我在哪里可以找到它们?我需要这个来直接设置它们(而不是通过flashhash)。 最佳答案 它们存储在inyoursessionstore.自rails2.0以来的默认设置是cookie存储,但请检查config/initializers/session_store.rb以检查您是否使用默认设置以外的东西。 关于ruby-on-rails-闪存消息存储在哪里?,我们在StackOverf

  7. += 的 Ruby 方法 - 2

    有没有办法让Ruby能够做这样的事情?classPlane@moved=0@x=0defx+=(v)#thisiserror@x+=v@moved+=1enddefto_s"moved#{@moved}times,currentxis#{@x}"endendplane=Plane.newplane.x+=5plane.x+=10putsplane.to_s#moved2times,currentxis15 最佳答案 您不能在Ruby中覆盖复合赋值运算符。任务在内部处理。您应该覆盖+,而不是+=。plane.a+=b与plane.a=

  8. ruby - Sinatra + Heroku + Datamapper 使用 dm-sqlite-adapter 部署问题 - 2

    出于某种原因,heroku尝试要求dm-sqlite-adapter,即使它应该在这里使用Postgres。请注意,这发生在我打开任何URL时-而不是在gitpush本身期间。我构建了一个默认的Facebook应用程序。gem文件:source:gemcuttergem"foreman"gem"sinatra"gem"mogli"gem"json"gem"httparty"gem"thin"gem"data_mapper"gem"heroku"group:productiondogem"pg"gem"dm-postgres-adapter"endgroup:development,:t

  9. ruby - Ruby 中字符串运算符 + 和 << 的区别 - 2

    我是Ruby和这个网站的新手。下面两个函数是不同的,一个在函数外修改变量,一个不修改。defm1(x)x我想确保我理解正确-当调用m1时,对str的引用被复制并传递给将其视为x的函数。运算符当调用m2时,对str的引用被复制并传递给将其视为x的函数。运算符+创建一个新字符串,赋值x=x+"4"只是将x重定向到新字符串,而原始str变量保持不变。对吧?谢谢 最佳答案 String#+::str+other_str→new_strConcatenation—ReturnsanewStringcontainingother_strconc

  10. ruby-on-rails - Ruby 如何知道在哪里可以找到所需的文件? - 2

    这里还有一个新手问题:require'tasks/rails'我在每个Rails项目的根路径中的Rakefile中看到了这一行。我猜这行用于要求vendor/rails/railties/lib/tasks/rails.rb加载所有rake任务:$VERBOSE=nil#LoadRailsrakefileextensionsDir["#{File.dirname(__FILE__)}/*.rake"].each{|ext|loadext}#LoadanycustomrakefileextensionsDir["#{RAILS_ROOT}/lib/tasks/**/*.rake"].so

随机推荐