Je crée un programme et je fais le plus possible de manière asynchrone.Boost :: processus processus async_wait
J'ai besoin d'exécuter un programme et quand ce programme se termine, il appelle une fonction de rappel. J'ai trouvé une version de boost :: process et j'ai décidé d'utiliser, mais il semble qu'il y ait l'exemple mais n'a pas pu trouver l'implémentation dans la source que j'ai téléchargée, quelqu'un pourrait-il me donner un coup de main?
exemple de code http://www.highscore.de/boost/gsoc2010/process/user_guide.html#boost_process.user_guide.waiting et télécharger la source boost :: processus ici www.highscore.de/cpp/process/
Je dois créer une mise en œuvre ou là, mais je suis arrivé les sources du mauvais endroit?
Ceci est un exemple de code pour résoudre mon problème.
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;
}
}
Désolé mon mauvais anglais Cordialement Bruno