"msvcrt" --- MS VC++ 런타임의 유용한 루틴
*****************************************

======================================================================

이 함수들은 윈도우 플랫폼에서 유용한 기능에 대한 액세스를 제공합니다.
일부 고수준 모듈은 이러한 함수를 사용하여 해당 서비스의 윈도우 구현을
구축합니다. 예를 들어, "getpass" 모듈은 "getpass()" 함수를 구현할 때
이를 사용합니다.

이 함수에 대한 자세한 설명은 플랫폼 API 설명서에서 찾을 수 있습니다.

이 모듈은 콘솔 I/O api의 일반과 광폭(wide) 문자 변형을 모두 구현합니다
. 일반 API는 ASCII 문자만 다루며 국제화된 응용 프로그램에서는 제한적으
로 사용됩니다. 가능하면 광폭 문자 API를 사용해야 합니다.

가용성: Windows.

버전 3.3에서 변경: 이 모듈의 연산은 이제 "IOError"를 발생시키던 곳에서
"OSError"를 발생시킵니다.


파일 연산
=========

msvcrt.locking(fd, mode, nbytes)

   C 런타임의 파일 기술자 *fd*를 기반으로 파일 일부를 잠급니다. 실패하
   면 "OSError"를 발생시킵니다. 파일의 잠긴 영역은 현재 파일 위치에서
   부터 *nbytes* 바이트까지며, 파일 끝을 넘어 계속될 수 있습니다.
   *mode*는 아래에 나열된 "LK_*" 상수 중 하나여야 합니다. 파일의 여러
   영역이 동시에 잠길 수 있지만 겹칠 수는 없습니다. 인접한 영역은 병합
   되지 않습니다; 개별적으로 잠금을 해제해야 합니다.

   인자 "fd", "mode", "nbytes"로 감사 이벤트 "msvcrt.locking"을 발생시
   킵니다.

msvcrt.LK_LOCK
msvcrt.LK_RLCK

   지정된 바이트를 잠급니다. 바이트를 잠글 수 없으면, 프로그램은 1초
   후에 즉시 다시 시도합니다. 10 번 시도한 후에도 바이트를 잠글 수 없
   으면, "OSError"가 발생합니다.

msvcrt.LK_NBLCK
msvcrt.LK_NBRLCK

   지정된 바이트를 잠급니다. 바이트를 잠글 수 없으면, "OSError"가 발생
   합니다.

msvcrt.LK_UNLCK

   이전에 잠겨 있어야 하는 지정된 바이트의 잠금을 해제합니다.

msvcrt.setmode(fd, flags)

   파일 기술자 *fd*의 줄 종료 변환 모드를 설정합니다. 텍스트 모드로 설
   정하려면, *flags*가 "os.O_TEXT" 여야 합니다; 바이너리는,
   "os.O_BINARY" 여야 합니다.

msvcrt.open_osfhandle(handle, flags)

   파일 핸들 *handle*에서 C 런타임 파일 기술자를 만듭니다. *flags* 매
   개 변수는 "os.O_APPEND", "os.O_RDONLY", "os.O_TEXT" 및
   "os.O_NOINHERIT"의 비트별 OR 여야 합니다. 반환된 파일 기술자는
   "os.fdopen()"에 대한 매개 변수로 사용되어 파일 객체를 만들 수 있습
   니다.

   The file descriptor is inheritable by default. Pass
   "os.O_NOINHERIT" flag to make it non inheritable.

   인자 "handle", "flags"로 감사 이벤트 "msvcrt.open_osfhandle"을 발생
   시킵니다.

msvcrt.get_osfhandle(fd)

   파일 기술자 *fd*의 파일 핸들을 돌려줍니다. *fd*가 인식되지 않으면
   "OSError"를 발생시킵니다.

   인자 "fd"로 감사 이벤트 "msvcrt.get_osfhandle"을 발생시킵니다.


콘솔 I/O
========

msvcrt.kbhit()

   읽을 수 있는 키 누르기가 대기 중이면 0이 아닌 값을 반환합니다. 그렇
   지 않으면, 0을 반환합니다.

msvcrt.getch()

   키 누르기를 읽고 결과 문자를 바이트열로 반환합니다. 콘솔에 아무것도
   에코 되지 않습니다. 이 호출은 키 누르기를 아직 사용할 수 없으면 블
   록하지만, "Enter"가 눌러지기를 기다리지는 않습니다. 누른 키가 특수
   기능 키면, "'\000'" 이나 "'\xe0'"를 반환합니다; 다음 호출은 키코드
   를 반환합니다. 이 함수로 "Control"-"C" 키 누르기를 읽을 수 없습니다
   .

msvcrt.getwch()

   유니코드 값을 반환하는 "getch()"의 광폭 문자 변형.

msvcrt.getche()

   "getch()"와 비슷하지만, 인쇄 가능한 문자를 나타내는 경우 키 누르기
   가 에코 됩니다.

msvcrt.getwche()

   유니코드 값을 반환하는 "getche()"의 광폭 문자 변형.

msvcrt.putch(char)

   버퍼링하지 않고 바이트열 *char*을 콘솔에 인쇄합니다.

msvcrt.putwch(unicode_char)

   유니코드 값을 받아들이는 "putch()"의 광폭 문자 변형.

msvcrt.ungetch(char)

   바이트열 *char*이 콘솔 버퍼로 "푸시백" 되도록 합니다; "getch()" 나
   "getche()"가 읽는 다음 문자가 됩니다.

msvcrt.ungetwch(unicode_char)

   유니코드 값을 받아들이는 "ungetch()"의 광폭 문자 변형.


기타 함수
=========

msvcrt.heapmin()

   강제로 "malloc()" 힙이 자신을 정리하고, 사용하지 않는 블록을 운영
   체제로 반환하도록 합니다. 실패하면, "OSError"가 발생합니다.

msvcrt.set_error_mode(mode)

   Changes the location where the C runtime writes an error message
   for an error that might end the program. *mode* must be one of the
   "OUT_*" constants listed below  or "REPORT_ERRMODE". Returns the
   old setting or -1 if an error occurs. Only available in debug build
   of Python.

msvcrt.OUT_TO_DEFAULT

   Error sink is determined by the app's type. Only available in debug
   build of Python.

msvcrt.OUT_TO_STDERR

   Error sink is a standard error. Only available in debug build of
   Python.

msvcrt.OUT_TO_MSGBOX

   Error sink is a message box. Only available in debug build of
   Python.

msvcrt.REPORT_ERRMODE

   Report the current error mode value. Only available in debug build
   of Python.

msvcrt.CrtSetReportMode(type, mode)

   Specifies the destination or destinations for a specific report
   type generated by "_CrtDbgReport()" in the MS VC++ runtime. *type*
   must be one of the "CRT_*" constants listed below. *mode* must be
   one of the "CRTDBG_*" constants listed below. Only available in
   debug build of Python.

msvcrt.CrtSetReportFile(type, file)

   After you use "CrtSetReportMode()" to specify "CRTDBG_MODE_FILE",
   you can specify the file handle to receive the message text. *type*
   must be one of the "CRT_*" constants listed below. *file* should be
   the file handle your want specified. Only available in debug build
   of Python.

msvcrt.CRT_WARN

   Warnings, messages, and information that doesn't need immediate
   attention.

msvcrt.CRT_ERROR

   Errors, unrecoverable problems, and issues that require immediate
   attention.

msvcrt.CRT_ASSERT

   Assertion failures.

msvcrt.CRTDBG_MODE_DEBUG

   Writes the message to the debugger's output window.

msvcrt.CRTDBG_MODE_FILE

   Writes the message to a user-supplied file handle.
   "CrtSetReportFile()" should be called to define the specific file
   or stream to use as the destination.

msvcrt.CRTDBG_MODE_WNDW

   Creates a message box to display the message along with the
   "Abort", "Retry", and "Ignore" buttons.

msvcrt.CRTDBG_REPORT_MODE

   Returns current *mode* for the specified *type*.

msvcrt.CRT_ASSEMBLY_VERSION

   The CRT Assembly version, from the "crtassem.h" header file.

msvcrt.VC_ASSEMBLY_PUBLICKEYTOKEN

   The VC Assembly public key token, from the "crtassem.h" header
   file.

msvcrt.LIBRARIES_ASSEMBLY_NAME_PREFIX

   The Libraries Assembly name prefix, from the "crtassem.h" header
   file.
