Как я могу выполнить команду командной строки из С++-программы
Как я могу выполнить командную строку "asterisk -rx" перезагрузить "" в С++? Пожалуйста помоги. Мне нужен пример. Я работаю на сервере ubuntu, и я хочу выполнить эту командную строку у пользователя (внутри веб-службы).
Нужна помощь
Цените
Ответы
Ответ 1
Звучит как тривиальный прецедент для функции system()
:
system("asterisk -rx reload");
Если вам нужен очень тонкий контроль над дочерним процессом, есть более эффективные способы, но это просто сделать.
Этот вызов запускает оболочку (например, bash) для запуска команды, поэтому я удалил кавычки вокруг reload
; они бессмысленны для одного слова и будут удалены оболочкой и никогда не будут видны запущенной программой. В любом случае.
Ответ 2
system("asterisk -rx \"reload\"")
, вероятно, будет работать, если вам не нужен стандартный вывод или ошибка процесса.
Если вам нужны результаты процесса, здесь является примером использования C popen()
, или вы можете посмотреть Boost.Process для подхода на С++.