我試圖啓動外部程序並與它們進行通信。QProcess工作示例 - C++
我想使用QProcess在後臺運行此應用程序。並且也將這些代碼中的命令傳遞給這個過程。
有人可以指出這一點,並指示我相應地執行命令以及代碼運行時。
像這樣在Python但C++使用QProcess中
p = subprocess.Popen(['mpg321', '-R', 'anyword'], stdin=PIPE)
p.stdin.write('LOAD test.mp3\n')
我試圖啓動外部程序並與它們進行通信。QProcess工作示例 - C++
我想使用QProcess在後臺運行此應用程序。並且也將這些代碼中的命令傳遞給這個過程。
有人可以指出這一點,並指示我相應地執行命令以及代碼運行時。
像這樣在Python但C++使用QProcess中
p = subprocess.Popen(['mpg321', '-R', 'anyword'], stdin=PIPE)
p.stdin.write('LOAD test.mp3\n')
嘗試這種情況:
QProcess subprocess;
subprocess.start("mpg321", QStringList() << "-R" << "anyword");
if (!subprocess.waitForStarted())
return false;
subprocess.write("LOAD test.mp3\n");
的'popen方法()'函數有兩個參數:命令串並且或者' 「R」 ''''''w''取決於你想寫入標準輸入還是從運行命令的標準輸出中讀取。你顯示的部分錯誤信息是給你的信息 - 命令和模式。如果您想將程序的標準輸入轉發到您運行的命令,您需要循環,從標準輸入讀取數據並寫入成功打開的「f」文件流。你應該考慮用''來代替'';你現有的代碼是C代碼(以及C++)。 –
我有類似的東西,在我的情況下我使用共享內存。在共享內存中,我有一個命令緩衝區,其中一個進程寫入,另一個從中讀取。 –
popen(「mpg321 -R ewqe」,「w」) –