# `msvcrt` — Useful routines from the MS VC++ runtime

These functions provide access to some useful capabilities on Windows platforms. Some higher-level modules use these functions to build the Windows implementations of their services. For example, the `getpass` module uses this in the implementation of the `getpass()` function.

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

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

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

## 파일 연산

`msvcrt.``locking`(fd, mode, nbytes)

  Lock part of a file based on file descriptor fd from the C runtime. Raises `OSError` on failure. The locked region of the file extends from the current file position for nbytes bytes, and may continue beyond the end of the file. mode must be one of the `LK_*` constants listed below. Multiple regions in a file may be locked at the same time, but may not overlap. Adjacent regions are not merged; they must be unlocked individually.

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

`msvcrt.``LK_LOCK`
`msvcrt.``LK_RLCK`

  Locks the specified bytes. If the bytes cannot be locked, the program immediately tries again after 1 second. If, after 10 attempts, the bytes cannot be locked, `OSError` is raised.

`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)

  Create a C runtime file descriptor from the file handle handle. The flags parameter should be a bitwise OR of `os.O_APPEND`, `os.O_RDONLY`, and `os.O_TEXT`. The returned file descriptor may be used as a parameter to `os.fdopen()` to create a file object.

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

`msvcrt.``get_osfhandle`(fd)

  Return the file handle for the file descriptor fd. Raises `OSError` if fd is not recognized.

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

## 콘솔 I/O

`msvcrt.``kbhit`()

  Return `True` if a keypress is waiting to be read.

`msvcrt.``getch`()

  Read a keypress and return the resulting character as a byte string. Nothing is echoed to the console. This call will block if a keypress is not already available, but will not wait for `Enter` to be pressed. If the pressed key was a special function key, this will return `'\000'` or `'\xe0'`; the next call will return the keycode. The ``Control`-`C`` keypress cannot be read with this function.

`msvcrt.``getwch`()

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

`msvcrt.``getche`()

  Similar to `getch()`, but the keypress will be echoed if it represents a printable character.

`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`()

  Force the `malloc()` heap to clean itself up and return unused blocks to the operating system. On failure, this raises `OSError`.