2012-02-11 15 views
6

少しコンソールアプリケーションを作成しましたが、サイクル(しばらく)が再び始まる前に一定の時間(秒)停止します。Cの秒数を待機/一時停止する

私はWindowsオペレーティングシステムで作業しています。

+0

「秒」は非常に有用なタグではないと私は思います。 –

答えて

10

Windowsでは、これを行う機能はSleepで、ミリ秒の時間がかかります。あなたはスリープ状態にします。 Sleepを使用するには、windows.hを含める必要があります。 POSIXシステムズオン

、(unistd.hから)関数sleepは、これを達成する:

unsigned int sleep(unsigned int seconds); 

    DESCRIPTION 
      sleep() makes the calling thread sleep until 
      seconds seconds have elapsed or a signal arrives which is not ignored. 

それがシグナルによって中断された場合、スリープまでの残り時間が返されます。あなたが信号を使用する場合は、より堅牢なソリューションは次のようになります。

unsigned int time_to_sleep = 10; // sleep 10 seconds 
while(time_to_sleep) 
    time_to_sleep = sleep(time_to_sleep); 

これが唯一の時間のごく少量を取り、あなたのシグナルハンドラを想定し、もちろんです。

while(true) 
{ 
    // your stuff 
    sleep(10); // sleeping for 10 seconds 
}; 
+1

Windowsでは "sleep()"がno-noです。 – Ldx

+3

代わりに、Sleep()が正常に機能します。 Ldx

3

(そうでなければ、これは意図したよりも長いメインプログラムを遅らせます) sleep()(UNIX)およびSleep()(風)。

+0

引数10を渡しても10秒間は得られません。 – nicomp

0

UNIXの場合:

#include <unistd.h> 
sleep(10000); // 10 seconds 

Windowsオン:

#include <windows.h> 
Sleep(10000); // 10 seconds 

注差と簡単

関連する問題