2012-02-11 3 views
6

작은 콘솔 응용 프로그램을 작성했으며주기 (잠시)가 다시 시작되기 전에 특정 시간 (초) 동안 일시 중지하려고합니다.C에서 초를 대기/일시 중지합니다.

저는 Windows 운영 체제에서 작업하고 있습니다. Windows에서

+0

'seconds '는 매우 유용한 태그라고 생각하지 않습니다. –

답변

10

는이 작업을 수행 할 수있는 기능을 사용하면 자고 싶어(밀리 초)의 양을 필요 Sleep이다. Sleep을 사용하려면 windows.h을 포함해야합니다.

(unistd.h)에서 POSIX 시스템즈 함수 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 

주 차이 사이에 쉽게

관련 문제