c++ - ¿Dónde está Boost.Process?
cross-platform platform-independent (9)
Necesito ejecutar un programa 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 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?
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
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 .
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 fuentes 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: Boost.Process
Hay otra versión que parece ramas: 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
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
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.
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.
Otra opción podría ser el POCO diseñado POCO , vea Process::launch()
que tiene una sobrecarga que toma las Pipes para entrada, salida y error .