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

时间:2012-01-12 08:57:43

标签: c++ ubuntu

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

需要帮助 欣赏

2 个答案:

答案 0 :(得分:24)

听起来像system()函数的一个简单用例:

system("asterisk -rx reload");

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

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

答案 1 :(得分:4)

如果您不需要标准输出或过程中的错误,

system("asterisk -rx \"reload\"")可能会有效。

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