Skip to content

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