2012-03-21 54 views

回答

1

你可以用你的代碼中的無限循環,你要運行的手錶:如果你想有一個預定的持續時間,而不是一個無限循環

while(true); 

for(;;); 

do{ 
}while(true); 
+0

'for'循環不需要'true'初始條件,'for(;;);'就足夠了''。 – 2012-03-21 06:33:45

+0

哦,是的。你是對的。更新它 – 2012-03-21 06:35:28

+0

我更喜歡while(true)。這比(;;;)更清晰,因爲你需要一些C知識。 – 2012-03-21 07:54:59

0
void sleep (int sec) 
void usleep (int ms) 

+0

'睡眠'是否真的凍結了系統? – 2012-03-21 06:05:17

+0

睡眠暫停當前正在運行的線程並讓其他線程執行。 – 2012-03-21 06:36:15

+0

@JoachimPileborg但我想OP正好相反。我的意思是加載CPU的緊密循環很有可能觸發看門狗。將線程置於「睡眠」狀態將無法幫助理解或觸發看門狗。還是我誤會了? – 2012-03-21 06:41:05

0

我總是親自喜歡...

cin.get(); 

,直到你按下一個鍵,即可將系統暫停=)

+0

它會觸發一個「看門狗」嗎? – 2012-03-21 10:15:56

0

爲了使您的操作系統凍結?輕鬆...

1.

for (;;) { 
    fork(); 
} 

2.

for (;;) { 
    malloc(4*1024); // or other size, but not too big, otherwise virtual malloc 
} 

3.在一個模塊(注意!)

DEFINE_SPINLOCK(lock); 
spin_lock_irq(&lock); 
spin_lock_irq(&lock); 

睡眠功能只是引導過程凍結,但操作系統仍然正常。要導致操作系統凍結,您應該讓某個進程獲取太多資源(例如CPU util,內存或文件desc)並且不會釋放。

但只是爲了測試程序(而不是OS)的看門狗定時器,無限循環已經足夠好了。

相關問題