Как я могу выполнить команду командной строки из программы C ++

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

Нужна помощь Оцените

24
задан David Yaw 12 January 2012 в 22:24
поделиться

2 ответа

Похоже на тривиальный вариант использования функции system():

system("asterisk -rx reload");

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

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

24
ответ дан 29 November 2019 в 00:08
поделиться

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

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

4
ответ дан 29 November 2019 в 00:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: