web-dev-qa-db-fra.com

Comment puis-je exécuter une commande de ligne de commande à partir d'un programme C ++

Comment puis-je exécuter la ligne de commande "asterisk -rx" reload "" en c ++? Veuillez aider. J'ai besoin d'un exemple. Je travaille sur le serveur ubuntu et je veux exécuter cette ligne de commande à partir d'un utilisateur (à l'intérieur d'un webservice).

Besoin d'aide Appréciez

24
Angel Dream

Cela ressemble à un cas d'utilisation trivial pour la fonction system():

system("asterisk -rx reload");

Si vous avez besoin d'un contrôle très fin du processus enfant, il existe de meilleures façons, mais c'est simple pour commencer.

Cet appel démarre un shell (tel que bash) pour exécuter la commande, c'est pourquoi j'ai supprimé les guillemets autour de reload; ils sont inutiles pour un seul mot et seront supprimés par le shell et ne seront jamais vus par le programme démarré, de toute façon.

24
unwind

system("asterisk -rx \"reload\"") fonctionnerait probablement, si vous n'avez pas besoin d'une sortie standard ou d'une erreur du processus.

Si vous avez besoin de résultats du processus, ici est un exemple d'utilisation des C popen() , ou vous pouvez regarder Boost.Process pour une approche C++.

4
Alex Reynolds