我有一個使用QProcess的代碼。讀取QProcess輸出到字符串
int main(int argc, char *argv[])
{
int status=0;
QProcess pingProcess;
QString ba;
QString exec = "snmpget";
QStringList params;
params << "-v" << "2c" << "-c" << "public" << "10.18.32.52" << ".1.3.6.1.4.1.30966.1.2.1.1.1.5.10";
status=pingProcess.execute(exec, params);
pingProcess.close();
}
這將輸出以下內容。
SNMPv2-SMI::enterprises.30966.1.2.1.1.1.5.10 = STRING: "0.1"
我想以字符串形式讀取(讀取)此輸出。我搜索了這個,我找不到解決方案。提前致謝。
雖然這是正確的,但您應該意識到,如果進程創建大量輸出,則在進程完成之前可能會接收到多次對readData插槽的調用,因此需要處理數據的串聯並仍然等待信號完成處理。 – TheDarkKnight
True,連接(&pingProcess,SIGNAL(finished(int)),this,SLOT(handleProcessFinish(int); 這樣你不會阻塞流程(另外waitFofFinished有30secs默認超時) – ariwez
是的,但是30秒是等待的最長時間,如果該過程在此之前完成,它將返回。 – TheDarkKnight