我正在创建一个程序,并且我正在尽可能地异步执行。
我需要运行一个程序,当该程序完成时,它会调用一个回调函数。我找到了 boost::process 的一个版本并决定使用,但似乎有示例,但在我下载的源代码中找不到实现,有人可以帮我吗?
代码示例http://www.highscore.de/boost/gsoc2010/process/user_guide.html#boost_process.user_guide.waiting 并在此处下载源 boost::process www.highscore.de/cpp/process/
我需要为其创建一个实现,但我从错误的地方获取了源代码?
这是解决我的问题的示例代码。
boost::asio::io_service ioservice;
void end_wait(const boost::system::error_code &ec, int exit_code);
int main()
{
std::string exe = boost::process::find_executable_in_path("hostname");
std::vector<std::string> args;
boost::process::child c = boost::process::create_child(exe, args);
boost::process::status s(ioservice);
s.async_wait(c.get_id(), end_wait);
ioservice.run();
}
void end_wait(const boost::system::error_code &ec, int exit_code)
{
if (!ec)
{
#if defined(BOOST_POSIX_API)
if (WIFEXITED(exit_code))
exit_code = WEXITSTATUS(exit_code);
#endif
std::cout << "exit code: " << exit_code << std::endl;
}
}
Run Code Online (Sandbox Code Playgroud)
抱歉我的英语不好问候布鲁诺