PHP スクリプトを実行して stdout から出力を取得しようとすると、コードは次のようになります。
using namespace boost::process;
std::string exec="php";
std::vector<std::string> args;
// I must to throw the exe by argument
args.push_back("php");
args.push_back("a.php");
context ctx;
ctx.stdout_behavior = capture_stream();
child c = launch(exec, args, ctx);
pistream &is = c.get_stdout();
stdout には情報がありませんが、stderr には次の情報が表示されます。
「boost::process::detail::posix_start: execve(2) が失敗しました: 権限が拒否されました」
そして、ターミナルでまったく同じコマンドを実行すると、正常に動作します!
解決策はありますか?
ありがとう..