Où est Boost.Process?

Je dois exécuter un programme et récupérer sa sortie stdout en c ++. Je voudrais aussi que mon code soit multi-plateforme.

Ayant récemment découvert le monde merveilleux des bibliothèques Boost c ++ pour tous vos besoins multi-plateformes, je me suis dit que je voulais juste aller sur boost.org et lire la documentation de Boost.Process. À ma grande surprise, ce n’était pas là! J’ai ensuite procédé à la recherche du nom donné par Boost à leur bibliothèque multiplate-forme pour démarrer des processus externes, mais je n’ai pas encore réussi à le trouver.

Une recherche sur Google m’a amené à Boost.Process de Julio M. Merino Vidal, qui semble être la bibliothèque non officielle de Boost que je cherchais. Curieusement, je n’arrive pas à trouver un lien de téléchargement sur ce site. Il semble également qu’il n’y ait pas eu de développements récents concernant le projet.

J’ai finalement pu trouver un lien de téléchargement pour Boost.Process de Vidal sur un site externe et je l’utiliserai pour le moment, mais je suis assez étonné de l’effort que j’ai dû déployer pour mettre la main sur une bibliothèque c ++ multi-plateforme. interagir avec des processus externes.

Alors, pourquoi n’y a-t-il pas de processus officiel Boost.Process? Il semble que ce soit un ajout très précieux. Ou suis-je totalement en train d’ignorer la solution évidente ici? Pourriez-vous suggérer d’autres bibliothèques multi-plateformes pour gérer le démarrage et l’interaction simples avec des processus externes?

Julio M. Merino Vidal, qui est, je crois, l’auteur original, a écrit dans ce billet de 2007 qu’il n’avait pas le temps de le compléter.

Le développement a été repris par Boris Schaeling. C’est la version que vous avez trouvée à http://www.highscore.de/boost/process/ . Selon ce post , il le développe toujours activement.

Il existe une autre version d’ Ilya Sokolov .

Pour votre autre question:

Pourriez-vous suggérer d’autres bibliothèques multi-plateformes pour gérer le démarrage et l’interaction simples avec des processus externes?

vous pouvez regarder cette page wiki listant des alternatives.

En fonction de vos besoins, popen () pourrait également faire le travail.

Boost.Process a été accepté pour inclusion dans Boost le 9 novembre 2016 ; et a été inclus dans le 1.64 publié le 19 avril 2017. Boost.Process est maintenant une bibliothèque officielle de Boost!

Sa documentation est disponible ici: http://www.boost.org/doc/libs/1_64_0/doc/html/process.html


Pour mémoire, les sources examinées du 27 octobre 2016 au 5 novembre 2016 sont disponibles sur GitHub:

télécharger: https://github.com/klemens-morgenstern/boost-process

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


Vous pouvez trouver sur le Web plusieurs anciennes versions de cette bibliothèque. Ils sont tous plus ou moins incompatibles:

  • Version 0.5 (au plus tard le 3 décembre 2012)

télécharger: http://www.highscore.de/boost/process0.5/process.zip

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

  • Version GSOC2010

télécharger: http://www.highscore.de/boost/gsoc2010/process.zip

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

  • Version 0.31

télécharger: http://www.highscore.de/boost/process.zip

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

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

Je pense que c’est la même chose que dans http://svn.boost.org/svn/boost/sandbox/process/boost/

  • Version IS 0.1-0.4

télécharger: https://github.com/boost-vault/Process

  • Version 0?

télécharger: http://www.netbsd.org/~jmmv/process.zip

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

Il existe d’autres versions qui ressemblent à des twigs: https://github.com/JeffFlinn/boost-process et https://github.com/boost-vault/Process .

Pour un historique partiel du projet, consultez http://www.highscore.de/cpp/process/#introduction

Boost Process était l’un des projets Google Summer of Code cette année. Le site Web du GSOC 2010 Boost Process est http://www.highscore.de/boost/gsoc2010/ .

La bibliothèque n’est pas encore officielle, mais ses développeurs estiment qu’elle est suffisamment stable pour demander une révision formelle .

Au 18 août 2012, une nouvelle version de Boost.Process (v0.5) était disponible sur http://www.highscore.de/boost/process0.5/

espère que ça aide, Philipp

Une autre option pourrait être le POCO de conception modulaire, voir Process::launch() qui a une surcharge prenant Pipes pour entrée , sortie et erreur .

Il semble que Boost.Process soit dans la zone de sandbox , ce qui suggère qu’il a été proposé pour inclusion et qu’il est probablement encore en cours de développement, mais n’a pas été jugé stable, documenté et / ou suffisamment stimuler la libération.

Pour juillet 2015, il semble que Boost.Process ait été programmé pour la revue formelle Boost.

Des parties de Boost.Process sont disponibles dans plusieurs bibliothèques autonomes dans Boost: Boost.Interprocess, Options de programme, etc.

Le nouveau processus Boost est maintenant en version bêta et sera disponible dans Boost 1.64.0.

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