プログラムを実行し、C++でその標準出力を取得する必要があります。私のコードもクロスプラットフォームにしたいです。
クロスプラットフォームのすべてのニーズに対応するBoost c ++ライブラリの素晴らしい世界を最近発見したので、私はboost.orgに行き、Boost.Processのドキュメントを読むだけだと思いました。驚いたことに、そこにはありませんでした!次に、Boostが外部プロセスを開始するためにクロスプラットフォームライブラリに付けた名前を見つけ出しましたが、それを見つけることができませんでした。
Googleの検索でJulio M. Merino Vidalの Boost.Process が見つかりました。これは、私が探していた非公式のBoostライブラリのようです。奇妙なことに、そのWebサイトでダウンロードリンクが見つからないようです。また、プロジェクトに関する最近の開発はなかったようです。
外部サイト でVidalのBoost.Processのダウンロードリンクを見つけることができたので、今のところそれを使用しますが、手に入れるために努力しなければならないことに非常に驚いていますクロスプラットフォームのc ++ライブラリで、外部プロセスと対話します。
それでは、なぜ公式のBoost.Processがないのですか?それは非常に貴重な追加になるようです。または、ここで明らかな解決策を見逃していますか?おそらく、外部プロセスの単純な起動と外部プロセスとの相互作用を管理するために、他のクロスプラットフォームライブラリを提案できますか?
Julio M. Merino Vidalは、元の著者であると私は信じていますが、 この2007年の投稿 で、彼はそれを完了する時間がないと書いています。
開発はボリス・シェーリングに引き継がれました。これは http://www.highscore.de/boost/process/ で見つけたバージョンです。これによれば post 、彼はまだ積極的に開発中です。
Ilya Sokolov による別のバージョンがあります。
他の質問:
おそらく、外部プロセスの単純な起動と外部プロセスとの相互作用を管理するために、他のクロスプラットフォームライブラリを提案できますか
このwikiページ 選択肢の一覧をご覧ください。
ニーズに応じて、popen()がジョブを実行することもできます。
Boost.Processは 2016年11月9日にBoostに含めることが認められました ; 1.64に含まれています 2017年4月19日にリリースされました。Boost.Processは公式のBoostライブラリになりました!
ドキュメントはこちらから入手できます。 http://www.boost.org/doc/libs/1_64_0/doc/html/process.html
記録として、2016年10月27日から2016年11月5日までにレビューされたソースは、GitHubで入手できます。
ダウンロード: https://github.com/klemens-morgenstern/boost-process
マニュアル: http://klemens-morgenstern.github.io/process/index.html
このライブラリのいくつかの古いバージョンをウェブ上で見つけることができます。それらは多かれ少なかれ互換性がありません:
ダウンロード: http://www.highscore.de/boost/process0.5/process.Zip
マニュアル: http://www.highscore.de/boost/process0.5/index.html
ダウンロード: http://www.highscore.de/boost/gsoc2010/process.Zip
マニュアル: http://www.highscore.de/boost/gsoc2010/
ダウンロード: http://www.highscore.de/boost/process.Zip
manual1: http://www.highscore.de/boost/process/
manual2: http://www.highscore.de/cpp/process/
http://svn.boost.org/svn/boost/sandbox/process/boost/ と同じだと思います
ダウンロード: https://github.com/boost-vault/Process
ダウンロード: http://www.netbsd.org/~jmmv/process.Zip
マニュアル: http://www.netbsd.org/~jmmv/process/
ブランチのように見える他のバージョンがあります: https://github.com/JeffFlinn/boost-process および https://github.com/boost-vault/Process 。
プロジェクトの部分的な履歴については、 http://www.highscore.de/cpp/process/#introduction をご覧ください
2012年8月18日の時点で、Boost.Process(v0.5)の新しいバージョンが http://www.highscore.de/boost/process0.5/ でリリースされました。
役に立てば幸い、フィリップ
Boost Processは、今年のGoogle Summer of Codeプロジェクトの1つでした。 GSOC 2010 Boost Process Webサイトは http://www.highscore.de/boost/gsoc2010/ です。
ライブラリはまだ非公式ですが、その開発者は 正式なレビューをリクエスト に十分安定していると感じています。
別のオプションは、モジュラー設計された [〜#〜] poco [〜#〜] です。 Process::launch()
を参照してくださいin、outの場合、 Pipes を取るオーバーロードがあり、error。
Boost.Processは sandbox area にあるように見えます。これは、含めることが提案されており、おそらくまだ作業中であることを示唆していますが、安定、文書化、および/または有用とは見なされていませんメインのブーストリリースに含まれるのに十分です。
2015年7月の場合、Boost.Process
は、Boostの正式なレビューのために 予定 になりました。
Boost.Processの一部は、Boost.Interprocess、Program Optionsなど、Boostのいくつかのスタンドアロンライブラリで利用できます。
新しいBoostプロセスは現在ベータ版であり、Boost 1.64.0で利用可能になります。
http://www.boost.org/doc/libs/1_64_0_b2/doc/html/process.html