91. 코드 실행 지연
1. 키워드
2. 코드 실행을 늦추기
_sleep
, sleep
, usleep
함수를 사용하면 일정 시간 동안 코드의 실행을 늦출 수 있다.
- Windows에서
_sleep
함수는 stdlib.h
, 리눅스에서 sleep
, usleep
함수는 unistd.h
헤더 파일에 선언되어 있다.
_sleep(밀리초): Visual Studio
sleep(초): 리눅스
usleep(마이크로초): 리눅스
- 다음은
“There is no place like home. The Wizard of Oz”
문장을 0.5
초에 한 글자씩 출력한다.
#define _CRT_OBSOLETE_NO_WARNINGS // 구식 함수를 사용했을 때 발생하는 에러 방지
#include <stdio.h>
#include <stdlib.h> // _sleep 함수가 선언된 헤더 파일
#include <string.h>
//#include <unistd.h> // 리눅스에서 usleep 함수가 선언된 헤더 파일
int main()
{
char *script = "There is no place like home.\nThe Wizard of Oz";
int length = strlen(script);
for (int i = 0; i < length; i++)
{
printf("%c", script[i]);
// fflush(stdout); // 리눅스에서는 문자 하나씩 출력한 뒤 usleep으로 기다리려면
// 출력 버퍼를 비워야 함
// usleep(500000); // 리눅스에서 0.5초를 기다릴 때(-std=gnu99 옵션 사용)
_sleep(500); // 0.5초
}
return 0;
}
// There is no place like home. (0.5초에 한 글자씩 출력됨)
// The Wizard of Oz
for
반복문으로 반복하면서 문자열 script
의 문자를 하나 출력한 뒤 _sleep
함수로 0.5
초 대기하도록 만들었다.
- 리눅스에서는
usleep
함수를 사용해야 하며 리눅스에서는 문자 하나씩 출력한 뒤 usleep
으로 기다리려면 fflush
함수로 출력 버퍼를 비워야 한다.
References