Ich muss ein Programm ausführen und seine stdout-Ausgabe in c++ abrufen. Ich möchte, dass mein Code auch plattformübergreifend ist.
Nachdem ich kürzlich die wunderbare Welt der Boost-C++-Bibliotheken für all Ihre plattformübergreifenden Anforderungen entdeckt hatte, dachte ich, ich gehe einfach zu boost.org und lese die Dokumentation von Boost.Process. Zu meiner großen Überraschung war es nicht da! Ich habe dann herausgefunden, welchen Namen Boost ihrer plattformübergreifenden Bibliothek gegeben hat, um externe Prozesse zu starten, habe es aber bisher nicht geschafft, sie zu finden.
Eine Google-Suche brachte mich zu Julio M. Merino Vidal Boost.Prozess, das scheint die inoffizielle Boost-Bibliothek zu sein, nach der ich gesucht habe. Seltsamerweise kann ich auf dieser Website keinen Download-Link finden. Es scheint auch, als hätte es keine neueren Entwicklungen in Bezug auf das Projekt gegeben.
Ich konnte endlich einen Download-Link für Vidals Boost.Process auf einem finden externe Seite und werde das vorerst verwenden, aber ich bin ziemlich erstaunt über die Mühe, die ich investieren musste, um eine plattformübergreifende C++-Bibliothek in die Hände zu bekommen, um mit externen Prozessen zu interagieren.
Warum gibt es also keinen offiziellen Boost.Process? Es scheint, als wäre es eine sehr wertvolle Ergänzung. Oder übersehe ich hier die offensichtliche Lösung total? Könnten Sie vielleicht andere plattformübergreifende Bibliotheken vorschlagen, um das einfache Starten von und die Interaktion mit externen Prozessen zu verwalten?
Herzlichen Glückwunsch zur Entdeckung – Boost rockt!
– vehomzzz
5. November 2009 um 21:31 Uhr
Boost rockt, aber es gibt noch keine offizielle Process-Bibliothek. Für das, was es wert ist, habe ich in der Vergangenheit erfolgreich die Poco Process-Bibliothek verwendet (Google für die Poco C++-Bibliotheken für weitere Informationen).
Julio M. Merino Vidal, der meines Erachtens der ursprüngliche Autor ist, schrieb ein dieser Beitrag von 2007 dass er keine Zeit hatte, es zu vollenden.
Die Entwicklung wurde von Boris Schaeling übernommen. Dies ist die Version, die Sie gefunden haben http://www.highscore.de/boost/process/. Demzufolge Poster entwickelt es immer noch aktiv weiter.
Könnten Sie vielleicht andere plattformübergreifende Bibliotheken vorschlagen, um das einfache Starten von und die Interaktion mit externen Prozessen zu verwalten?
könnte man sich anschauen diese Wiki-Seite Alternativen auflisten.
Abhängig von Ihren Anforderungen könnte popen() auch die Arbeit erledigen.
Nur um die Informationen hier zu vervollständigen, würde ich die verlinken Zeitplan überprüfen in dem steht, dass boost.process gewesen ist abgelehnt.
– dave
3. Oktober 2011 um 8:30 Uhr
Diese Antwort ist nicht mehr aktuell, siehe die Community-Wiki-Antwort.
Eine weitere Option könnte der modulare Aufbau sein POCOsehen Process::launch() die eine Überlastung hat, die dauert Rohre zum in, aus und Error.
Timo Geusch
Es sieht so aus, als ob Boost.Process in der ist Sandkastenbereichwas darauf hindeuten würde, dass es zur Aufnahme vorgeschlagen wurde und wahrscheinlich noch daran gearbeitet wird, aber nicht als stabil, dokumentiert und/oder nützlich genug erachtet wurde, um in die Haupt-Boost-Version aufgenommen zu werden.
firegurafiku
Für Juli 2015 sieht es so aus Boost.Process ist gewesen geplant für die erneute formale Überprüfung von Boost.
Herzlichen Glückwunsch zur Entdeckung – Boost rockt!
– vehomzzz
5. November 2009 um 21:31 Uhr
Boost rockt, aber es gibt noch keine offizielle Process-Bibliothek. Für das, was es wert ist, habe ich in der Vergangenheit erfolgreich die Poco Process-Bibliothek verwendet (Google für die Poco C++-Bibliotheken für weitere Informationen).
– GestapeltSchief
5. November 2009 um 22:52 Uhr