¿Dónde está Boost.Process?

Necesito ejecutar un progtwig y recuperar su salida stdout en c ++. Me gustaría que mi código también sea multiplataforma.

Habiendo descubierto recientemente el maravilloso mundo de las bibliotecas Boost c ++ para todas sus necesidades de plataforma cruzada, pensé que iría a boost.org y leería la documentación de Boost.Process. Para mi sorpresa, ¡no estaba allí! Luego procedí a averiguar qué nombre le dio Boost a su biblioteca multiplataforma para iniciar procesos externos, pero no lo he podido encontrar hasta ahora.

Una búsqueda en Google me llevó al Boost.Process de Julio M. Merino Vidal, que parece ser la biblioteca no oficial de Boost que estaba buscando. Por extraño que parezca, parece que no puedo encontrar un enlace de descarga en ese sitio web. También parece que no ha habido novedades recientes con respecto al proyecto.

Finalmente pude encontrar un enlace de descarga para Vidal’s Boost.Process en un sitio externo y lo usaré por ahora, pero estoy bastante sorprendido por el esfuerzo que tuve que poner para tener en mis manos una biblioteca c ++ de plataforma cruzada para interactuar con procesos externos.

Entonces, ¿por qué no hay Boost.Process oficial? Parece que sería una adición muy valiosa. ¿O estoy pasando por alto totalmente la solución obvia aquí? ¿Podría sugerir otras bibliotecas multiplataforma para gestionar el inicio simple y la interacción con procesos externos?

Julio M. Merino Vidal, quien es, creo, el autor original, escribió en este post de 2007 que no tuvo tiempo de completarlo.

El desarrollo fue asumido por Boris Schaeling. Esta es la versión que encontraste en http://www.highscore.de/boost/process/ . Según este post , todavía lo está desarrollando activamente.

Hay otra versión, por Ilya Sokolov .

Para su otra pregunta:

¿Podría sugerir otras bibliotecas multiplataforma para gestionar el inicio simple y la interacción con procesos externos?

podrías mirar esta página wiki que enumera las alternativas.

Dependiendo de sus necesidades, popen () también podría hacer el trabajo.

Boost.Process fue aceptado para su inclusión en Boost el 9 de noviembre de 2016 ; y se ha incluido en el 1.64 publicado el 19 de abril de 2017. ¡Boost.Process ahora es una biblioteca oficial de Boost!

Su documentación está disponible aquí: http://www.boost.org/doc/libs/1_64_0/doc/html/process.html


Para el registro, las fonts que fueron revisadas desde el 27 de octubre de 2016 hasta el 5 de noviembre de 2016 están disponibles en GitHub:

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

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


Puede encontrar en la web varias versiones anteriores de esta biblioteca. Todos son más o menos incompatibles:

  • Versión 0.5 (más reciente, a partir del 3 de diciembre de 2012)

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

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

  • Versión GSOC2010

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

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

  • Versión 0.31

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

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

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

Creo que es lo mismo que en http://svn.boost.org/svn/boost/sandbox/process/boost/

  • Versión IS 0.1-0.4

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

  • Versión 0?

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

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

Hay otra versión que parece twigs: https://github.com/JeffFlinn/boost-process y https://github.com/boost-vault/Process .

Para obtener una historia parcial del proyecto, consulte http://www.highscore.de/cpp/process/#introduction

Boost Process fue uno de los proyectos de Google Summer of Code este año. El sitio web del GSOC 2010 Boost Process es http://www.highscore.de/boost/gsoc2010/ .

La biblioteca aún no es oficial, pero sus desarrolladores consideran que es lo suficientemente estable como para solicitar una revisión formal .

A partir del 18 de agosto de 2012, se lanzó una versión más reciente de Boost.Process (v0.5) en http://www.highscore.de/boost/process0.5/

Espero que eso ayude, Philipp

Otra opción podría ser el POCO diseñado modularmente , vea Process::launch() que tiene una sobrecarga que toma las tuberías para entrada, salida y error .

Parece que Boost.Process se encuentra en el área de la zona de pruebas, lo que sugeriría que se ha propuesto su inclusión y que probablemente todavía se esté trabajando, pero no se ha considerado estable, documentado y / o lo suficientemente útil como para incluirlo en el impulsar la liberación.

Para julio de 2015, parece que Boost.Process se programó para la revisión formal de Boost nuevamente.

Partes de Boost.Process están disponibles en varias bibliotecas independientes en Boost now: Boost.Interprocess, Program Options, etc.

El nuevo Boost Process ahora está en beta y estará disponible en Boost 1.64.0.

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