2009-11-05 10 views
53

Potrzebuję wykonać program i pobrać jego wyjście standardowe w C++. Chciałbym, aby mój kod był również wieloplatformowy.Gdzie jest Boost.Process?

Po niedawnym odkryciu cudownego świata bibliotek Boost C++ dla wszystkich potrzeb związanych z różnymi platformami, doszedłem do strony boost.org i przeczytałem dokumentację Boost.Process. Ku mojemu zaskoczeniu, go tam nie było! Następnie zacząłem odkrywać, jak nazywa się Boost bibliotekę międzyplatformową, aby uruchomić procesy zewnętrzne, ale jak dotąd nie udało się jej znaleźć.

Wyszukiwarka Google doprowadziła mnie do Julio M. Merino Vidala Boost.Process, która wydaje się być nieoficjalną biblioteką Boost, której szukałem. O dziwo, nie mogę znaleźć linku do pobierania na tej stronie. Wydaje się również, że nie było żadnych ostatnich wydarzeń dotyczących tego projektu.

Byłem w końcu w stanie znaleźć link do pobrania dla Vidal's Boost.Process na external site i wykorzystam to na razie, ale jestem dość zaskoczony wysiłkiem, który musiałem włożyć, aby dostać się w ręce na platformie krzyżowej Biblioteka C++ do interakcji z procesami zewnętrznymi.

Dlaczego więc nie ma oficjalnego Boost.Process? Wygląda na to, że byłby to bardzo cenny dodatek. Czy mogę całkowicie pominąć tutaj oczywiste rozwiązanie? Czy mógłbyś zaproponować inne biblioteki międzyplatformowe do zarządzania prostym uruchamianiem i interakcją z procesami zewnętrznymi?

+1

Gratulujemy odkrycia - Boost skały! – vehomzzz

+0

Zwiększ kamienie, ale nie ma jeszcze oficjalnej biblioteki procesu. O ile warto, z powodzeniem korzystałem z biblioteki Poco Process w przeszłości (Google dla bibliotek Poco C++, aby uzyskać więcej informacji). – StackedCrooked

Odpowiedz

29

Julio M. Merino Vidal, który jest, jak sądzę, oryginalnym autorem, napisał w this 2007 post, że nie miał czasu, aby to ukończyć.

Rozwój został przejęty przez Borisa Schaelinga. To jest wersja, którą znajdziesz pod adresem http://www.highscore.de/boost/process/. Zgodnie z tym post, nadal aktywnie go rozwija.

Istnieje inna wersja, Ilya Sokolov.

Na inne pytanie:

Mógłbyś może sugerować inne biblioteki cross-platform do zarządzania proste uruchomienie i interation z procesów zewnętrznych?

Można spojrzeć na this wiki page listę alternatyw.

W zależności od potrzeb popen() może również wykonać zadanie.

+7

Aby uzupełnić informacje tutaj, podłączyłem [harmonogram przeglądu] (http://www.boost.org/community/review_schedule.html), w którym stwierdzono, że boost.process został [odrzucony] (http: // lists.boost.org/boost-announce/2011/03/0292.php). – dave

+3

Ta odpowiedź nie jest aktualna, patrz odpowiedź na wiki społeczności. – Klaim

1

Części Boost.Process są dostępne w kilku bibliotekach autonomicznych w Boost, teraz: Boost.Interprocess, opcje programowe itp

3

Wygląda Boost.Process jest w sandbox area, które sugerują, że został zaproponowany do włączenia i prawdopodobnie nadal jest opracowywany, ale nie został uznany za stabilny, udokumentowany i/lub wystarczająco użyteczny, aby zostać uwzględnionym w głównym wydaniu wspomagającym.

4

Inną opcją może być zaprojektowany modułowo POCO patrz Process::launch() który ma przeciążenia, które odbywają Pipes dla w, się i błąd.

8

Proces wzmocnienia był jednym z projektów Google Summer of Code w tym roku. Strona procesu wzmocnienia GSOC 2010 to http://www.highscore.de/boost/gsoc2010/.

Biblioteka jest nadal nieoficjalna, ale jej twórcy uważają, że jest ona na tyle stabilna, aby była w stanie uzyskać request formal review.

+2

http://lists.boost.org/Archives/boost/2010/08/169915.php – vladr

+2

Został odrzucony z powodu różnych problemów, mam nadzieję, że rozwiążą one te problemy i ponownie je złożą. – maep

54

Boost.Process był accepted for inclusion into Boost on November 9, 2016; i has been included in the 1.64 wydany 19 kwietnia 2017 r. Boost.Process jest teraz oficjalną biblioteką Boost!

dokumentacja Za dostępna jest tutaj: http://www.boost.org/doc/libs/1_64_0/doc/html/process.html


Dla przypomnienia, źródła, które były oceniane z 27 października 2016 roku przez 5 listopada 2016 są dostępne na GitHub:

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

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


Możesz znaleźć w Internecie kilka starszych wersji tej biblioteki. Wszystkie są mniej lub bardziej niezgodne:

  • Wersja 0.5 (najnowsza z dniem 3 grudnia 2012)

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

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

  • Wersja GSOC2010

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

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

  • Wersja 0,31

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

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

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

myślę, że jest taki sam jak w http://svn.boost.org/svn/boost/sandbox/process/boost/

  • I.S. Wersja 0.1-0.4

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

  • wersja 0?

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

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

Istnieje inna wersja, że ​​wyglądają jak gałęzie: https://github.com/JeffFlinn/boost-process i https://github.com/boost-vault/Process.

Dla częściowego historii projektu, spojrzeć na http://www.highscore.de/cpp/process/#introduction