作者DIE755127 ()
看板Programming
標題[問題] 控制cmd執行外部程式回傳output
時間Wed Sep 2 22:04:08 2015
這個問題困擾我蠻多天的
目前是用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
→ p2k: 看起來iperf是ouput到stderr 121.254.120.1 09/03 18:49
→ p2k: 你在呼叫 iperf 那後最後加 2>&1 試試 121.254.120.1 09/03 18:50