Onde está o Boost.Process?

Eu preciso executar um programa e recuperar sua saída stdout em c ++. Eu gostaria que meu código fosse multi-plataforma também.

Tendo descoberto recentemente o maravilhoso mundo das bibliotecas Boost c ++ para todas as suas necessidades de plataforma cruzada, concluí que apenas acessaria o site boost.org e leria a documentação do Boost.Process. Para minha surpresa, não estava lá! Então comecei a descobrir qual o nome que Boost deu a sua biblioteca multi-plataforma para iniciar processos externos, mas não consegui encontrá-lo até agora.

Uma pesquisa no Google me levou ao processo Boost.Process de Julio M. Merino Vidal, que parece ser a biblioteca não oficial do Boost que eu estava procurando. Estranhamente, parece que não consigo encontrar um link de download nesse site. Parece também que não houve nenhum desenvolvimento recente em relação ao projeto.

Eu finalmente consegui encontrar um link de download para o Boost.Process de Vidal em um site externo e vou usá-lo por enquanto, mas estou bastante surpreso com o esforço que tive de colocar para colocar minhas mãos em uma biblioteca c ++ de plataforma cruzada para interagir com processos externos.

Então, por que não há nenhum Boost.Process oficial? Parece que seria uma adição muito valiosa. Ou estou totalmente ignorando a solução óbvia aqui? Você poderia, talvez, sugerir outras bibliotecas de plataforma cruzada para gerenciar o início e a interação simples com processos externos?

Julio M. Merino Vidal, que é, creio, o autor original, escreveu neste post de 2007 que ele não teve tempo para completá-lo.

O desenvolvimento foi assumido por Boris Schaeling. Esta é a versão que você encontrou em http://www.highscore.de/boost/process/ . De acordo com este post , ele ainda está desenvolvendo ativamente.

Há outra versão, por Ilya Sokolov .

Para sua outra pergunta:

Você poderia, talvez, sugerir outras bibliotecas de plataforma cruzada para gerenciar o início e a interação simples com processos externos?

você poderia olhar para esta lista de páginas wiki .

Dependendo de suas necessidades, o popen () também pode fazer o trabalho.

Boost.Process foi aceito para inclusão no Boost em 9 de novembro de 2016 ; e foi incluído no 1,64 lançado em 19 de abril de 2017. Boost.Process é agora uma biblioteca oficial Boost!

Sua documentação está disponível aqui: http://www.boost.org/doc/libs/1_64_0/doc/html/process.html


Para registro, as fonts revisadas de 27 de outubro de 2016 a 5 de novembro de 2016 estão disponíveis no GitHub:

download: https://github.com/klemens-morgenstern/boost-process

manual: http://klemens-morgenstern.github.io/process/index.html


Você pode encontrar na web várias versões antigas desta biblioteca. Eles são todos mais ou menos incompatíveis:

  • Versão 0.5 (mais recente, a partir de 3 de dezembro de 2012)

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

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

  • Versão GSOC2010

download: http://www.highscore.de/boost/gsoc2010/process.zip

manual: http://www.highscore.de/boost/gsoc2010/

  • Versão 0.31

download: http://www.highscore.de/boost/process.zip

manual1: http://www.highscore.de/boost/process/

manual2: http://www.highscore.de/cpp/process/

Eu acho que é o mesmo que em http://svn.boost.org/svn/boost/sandbox/process/boost/

  • IS versão 0.1-0.4

download: https://github.com/boost-vault/Process

  • Versão 0?

download: http://www.netbsd.org/~jmmv/process.zip

manual: http://www.netbsd.org/~jmmv/process/

Existem outras versões que se parecem com ramificações: https://github.com/JeffFlinn/boost-process e https://github.com/boost-vault/Process .

Para um histórico parcial do projeto, consulte http://www.highscore.de/cpp/process/#introduction

O processo de aumento foi um dos projetos do Google Summer of Code este ano. O site do Processo de Reforço do GSOC 2010 é http://www.highscore.de/boost/gsoc2010/ .

A biblioteca ainda não é oficial, mas seus desenvolvedores acham que ela é estável o suficiente para solicitar uma revisão formal .

A partir de 18 de agosto de 2012, uma versão mais recente do Boost.Process (v0.5) foi lançada em http://www.highscore.de/boost/process0.5/

Espero que ajude, Philipp

Outra opção pode ser o POCO com design modular, veja Process::launch() que tem uma sobrecarga que leva Pipes para dentro , para fora e erro .

Parece que o Boost.Process está na área da sandbox , o que sugere que ele foi proposto para inclusão e provavelmente ainda está sendo trabalhado, mas não foi considerado estável, documentado e / ou útil o suficiente para ser incluído nos principais tópicos. aumentar a liberação.

Para julho de 2015, parece que o Boost.Process foi agendado para a revisão formal do Boost novamente.

Partes do Boost.Process estão disponíveis em várias bibliotecas independentes no Boost agora: Boost.Interprocess, Program Options, etc.

O novo processo Boost está agora em versão beta e estará disponível no Boost 1.64.0.

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