2012-01-12 208 views
18

如何在C++中執行命令行「asterisk -rx」reload「」?請幫忙。我需要一個例子。我正在使用Ubuntu服務器,我想從用戶(在web服務中)執行這個命令行。如何從C++程序執行命令行命令

需要幫助 欣賞

+1

你真的認爲C++/CLI的意思是你把標籤[C++ -cli]解釋爲「C++命令行界面」嗎?實際上是否有Linux的C++/CLI實現? – celtschk 2012-01-12 09:07:03

回答

21

聽起來像一個平凡的用例爲system()功能:

system("asterisk -rx reload"); 

如果您需要子進程的非常精細的控制有更好的方式,但這種很容易。

這個調用啓動一個shell(比如bash)來運行該命令,這就是爲什麼我刪除了引號reload;無論如何,它們對於一個單詞來說都是沒有意義的,並且會被shell刪除並且從未被啓動的程序看到。

+0

這是好的,另一種方法可能是fork/exec(需要更多的努力,但更強大的整體) – dreamlax 2012-01-12 09:03:57

+0

我測試了它不是wkiring – 2012-01-12 10:36:41

+0

我有一個服務器上的Web服務,我試圖從用戶調用此方法但星號不是重裝。爲什麼?需要幫助plz – 2012-01-12 10:37:25