如何从C++程序执行命令行命令

Ang*_*eam 24 c++ ubuntu

如何在c ++中执行命令行"asterisk -rx"reload""?请帮忙.我需要一个例子.我正在使用ubuntu服务器,我想从用户(在webservice内)执行此命令行.

需要帮助欣赏

unw*_*ind 24

听起来像功能的一个简单的用例system():

system("asterisk -rx reload");
Run Code Online (Sandbox Code Playgroud)

如果您需要对子进程进行非常精细的控制,那么有更好的方法,但这很容易实现.

这个调用启动一个shell(比如bash)来运行命令,这就是我删除引号的原因reload; 无论如何,它们对于一个单词都是毫无意义的,并且将被shell删除,并且从未被启动过的程序看到过.


Ale*_*lds 6

system("asterisk -rx \"reload\"") 如果您不需要标准输出或过程中的错误,可能会起作用。

如果您需要流程的结果,这里有一个使用 C 的示例popen(),或者您可以查看Boost.Process以获取 C++ 方法。