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

作者: andy2007 (...)   2014-10-27 21:41:05
開發平台(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語言,感謝各位前輩們指點~ :)
作者: CaptainH (Cannon)   2014-10-27 22:11:00
thread
作者: LPH66 (-6.2598534e+18f)   2014-10-27 22:11:00
「沒有回應一段時間」→所以你基本上還是需要計時器不管是 busy loop 還是 thread 都是一樣
作者: andy2007 (...)   2014-10-27 22:21:00
謝謝前輩們的回應,如果不使用計時器,就必須一直等IO回應後才能繼續動作
作者: yoco (眠月)   2014-10-28 06:42:00
thread
作者: andy13579372 (痘糖)   2014-10-28 09:26:00
select()有timeout win和linux都有api

Links booklink

Contact Us: admin [ a t ] ucptt.com