[問題] 無限迴圈逾時跳出

看板C_and_CPP (C/C++)作者 (...)時間11年前 (2014/10/27 21:41), 11年前編輯推噓4(403)
留言7則, 5人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Dev-C++ 4.9.9.2 (測試用) 問題(Question): 各位前輩好,我在以下的程式碼呼叫了一個無窮迴圈的函數,回傳值型態為int 我想在主程式下的while迴圈中判斷「逾時」了,則自動跳出這個無窮迴圈 那該怎麼實作呢?(以下程式碼有更詳細說明) 程式碼(Code):(請善用置底文網頁, 記得排版) int main(void) { int b = 0; while( b=infinity() ){ //因為b=infinity()沒辦法傳值回來,所以進不去此while迴圈 //請問有辦法在一定的時間內跳出b=infinity()這個敘述嗎? //或者有紅色while迴圈在一定的時間內沒執行,就自動跳出的方法? } return 0; } int infinity(void){ int a = 1; while(1); return a; } 補充說明(Supplement): 我實際上是在做IO的控制,當IO沒有回應一段時間後 我就得跳出這個敘述,然後顯示逾時的訊息 我沒有使用計時器,請問各位前輩有其他的方法嗎? 初學C語言,感謝各位前輩們指點~ :) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.114.214.89 ※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1414417267.A.C5C.html ※ 編輯: andy2007 (140.114.214.89), 10/27/2014 21:51:07

10/27 22:11, , 1F
thread
10/27 22:11, 1F

10/27 22:11, , 2F
「沒有回應一段時間」→所以你基本上還是需要計時器
10/27 22:11, 2F

10/27 22:11, , 3F
不管是 busy loop 還是 thread 都是一樣
10/27 22:11, 3F

10/27 22:21, , 4F
謝謝前輩們的回應,如果不使用計時器,就必須一直等IO回
10/27 22:21, 4F

10/27 22:22, , 5F
應後才能繼續動作
10/27 22:22, 5F

10/28 06:42, , 6F
thread
10/28 06:42, 6F

10/28 09:26, , 7F
select()有timeout win和linux都有api
10/28 09:26, 7F
文章代碼(AID): #1KJajpnS (C_and_CPP)
文章代碼(AID): #1KJajpnS (C_and_CPP)