[問題] 控制cmd執行外部程式回傳output

看板Programming作者時間9年前 (2015/09/02 22:04), 編輯推噓0(002)
留言2則, 1人參與, 最新討論串1/1
這個問題困擾我蠻多天的 目前是用QT在windows下 使用QProcess執行外部程式 然後用readall得到執行結果 例如像是ping之類的都沒問題 現在遇到一個問題是 我想執行一個測試吞吐量的程式叫iperf 在server mode下(指令:iperf -s)會一直處於監聽狀態 不會結束 有封包進來會吐出數據 但用QProcess不管等多久readall都是空的data 並沒有任何回傳值 感覺上像是如果cmd被執行程式佔住就要不回來output 之前用BCB的createProcess也是類似的情況 但google很久一直找不出解法 我目前是用iperf3的版本https://iperf.fr/iperf-download.php iperf2.05也是一樣的結果 但如果一樣的code我把iperf換成ping 我可以一直接收到訊息 想請問這是跟執行檔本身有關嗎? 從windows開一個cmd window去執行iperf卻不會有沒訊息的問題 不曉得這之間差在哪裡? 有這方面經驗的高手可以指導一下方向嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.166.110.59 ※ 文章網址: https://www.ptt.cc/bbs/Programming/M.1441202653.A.C24.html

09/03 18:49, , 1F
看起來iperf是ouput到stderr
09/03 18:49, 1F

09/03 18:50, , 2F
你在呼叫 iperf 那後最後加 2>&1 試試
09/03 18:50, 2F
文章代碼(AID): #1Lvm7Tma (Programming)
文章代碼(AID): #1Lvm7Tma (Programming)