2016-07-06 84 views
2

我試圖啓動外部程序並與它們進行通信。QProcess工作示例 - C++

我想使用QProcess在後臺運行此應用程序。並且也將這些代碼中的命令傳遞給這個過程。

有人可以指出這一點,並指示我相應地執行命令以及代碼運行時。

像這樣在Python但C++使用QProcess中

p = subprocess.Popen(['mpg321', '-R', 'anyword'], stdin=PIPE) 
p.stdin.write('LOAD test.mp3\n') 
+0

的'popen方法()'函數有兩個參數:命令串並且或者' 「R」 ''''''w''取決於你想寫入標準輸入還是從運行命令的標準輸出中讀取。你顯示的部分錯誤信息是給你的信息 - 命令和模式。如果您想將程序的標準輸入轉發到您運行的命令,您需要循環,從標準輸入讀取數據並寫入成功打開的「f」文件流。你應該考慮用''來代替'';你現有的代碼是C代碼(以及C++)。 –

+0

我有類似的東西,在我的情況下我使用共享內存。在共享內存中,我有一個命令緩衝區,其中一個進程寫入,另一個從中讀取。 –

+1

popen(「mpg321 -R ewqe」,「w」) –

回答

0

嘗試這種情況:

QProcess subprocess; 
subprocess.start("mpg321", QStringList() << "-R" << "anyword"); 
if (!subprocess.waitForStarted()) 
    return false; 

subprocess.write("LOAD test.mp3\n"); 
+0

它在C++中嗎? ,因爲我的目標是C++代碼。 當我試圖運行它..即#include 它顯示:致命錯誤:QProcess:沒有這樣的文件或目錄 你能幫我這個 – RDoonds

+0

是的,來自Qt的QProcess。請參閱:http://doc.qt.io/qt-5/qprocess.html – rflobao

+0

您是否使用Qt框架? – rflobao