Как я могу выполнить команду командной строки из программы на C ++ - PullRequest
23 голосов
/ 12 января 2012

Как мне выполнить командную строку "asterisk -rx" reload "" в c ++? Пожалуйста помоги. Мне нужен пример. Я работаю на сервере Ubuntu и хочу выполнить эту командную строку от пользователя (внутри веб-службы).

нужна помощь Цените

Ответы [ 2 ]

24 голосов
/ 12 января 2012

Походит на тривиальный вариант использования для функции <a href="http://linux.die.net/man/3/system">system()</a>:

system("asterisk -rx reload");

Если вам нужен очень детальный контроль над дочерним процессом, есть более эффективные способы, но это легко начать.

Этот вызов запускает оболочку (например, bash) для запуска команды, поэтому я удалил кавычки вокруг reload;они бессмысленны для одного слова и будут удалены оболочкой и, в любом случае, никогда не будут видны запущенной программе.

4 голосов
/ 12 января 2012

system("asterisk -rx \"reload\""), вероятно, сработает, если вам не требуется стандартный вывод или ошибка процесса.

Если вам нужны результаты этого процесса, здесь является примером использования C popen(), или вы можете посмотреть Boost.Process C ++ подход.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...