This document is for an old version of Python that is no longer supported. You should upgrade and read the documentação do Python para versão estável atual.

# 35.2. `msvcrt` — Rotinas úteis do tempo de execução do MS VC++

Essas funções fornecem acesso a alguns recursos úteis nas plataformas Windows. Alguns módulos de nível superior usam essas funções para criar as implementações do Windows de seus serviços. Por exemplo, o módulo `getpass` usa isso na implementação da função `getpass()`.

Mais documentação sobre essas funções pode ser encontrada na documentação da API da plataforma.

O módulo implementa as variantes normal e ampla de caracteres da API de E/S do console. A API normal lida apenas com caracteres ASCII e é de uso limitado para aplicativos internacionalizados. A API ampla de caracteres deve ser usada sempre que possível.

## 35.2.1. Operações com arquivos

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

  Lock part of a file based on file descriptor fd from the C runtime. Raises `IOError` 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.

`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, `IOError` is raised.

`msvcrt.``LK_NBLCK`
`msvcrt.``LK_NBRLCK`

  Locks the specified bytes. If the bytes cannot be locked, `IOError` is raised.

`msvcrt.``LK_UNLCK`

  Desbloqueia os bytes especificados, que devem ter sido bloqueados anteriormente.

`msvcrt.``setmode`(fd, flags)

  Defina o modo de conversão de final de linha para o descritor de arquivo fd. Para configurá-lo no modo de texto, flags deve ser `os.O_TEXT`; para binário, deve ser `os.O_BINARY`.

`msvcrt.``open_osfhandle`(handle, flags)

  Cria um descritor de arquivo em tempo de execução C a partir do identificador de arquivo handle. O parâmetro flags deve ser um OR bit a bit de `os.O_APPEND`, `os.O_RDONLY` e `os.O_TEXT`. O descritor de arquivo retornado pode ser usado como um parâmetro para `os.fdopen()` para criar um objeto de arquivo.

`msvcrt.``get_osfhandle`(fd)

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

## 35.2.2. E/S de console

`msvcrt.``kbhit`()

  Return true if a keypress is waiting to be read.

`msvcrt.``getch`()

  Read a keypress and return the resulting character. 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`()

  Variante com caractere largo de `getch()`, retornando um valor Unicode.

  Novo na versão 2.6.

`msvcrt.``getche`()

  Semelhante a `getch()`, mas o pressionamento de tecla será repetido se representar um caractere imprimível.

`msvcrt.``getwche`()

  Variante com caractere largo de `getche()`, retornando um valor Unicode.

  Novo na versão 2.6.

`msvcrt.``putch`(char)

  Print the character char to the console without buffering.

`msvcrt.``putwch`(unicode_char)

  Variante com caractere largo de `putch()`, retornando um valor Unicode.

  Novo na versão 2.6.

`msvcrt.``ungetch`(char)

  Cause the character char to be “pushed back” into the console buffer; it will be the next character read by `getch()` or `getche()`.

`msvcrt.``ungetwch`(unicode_char)

  Variante com caractere largo de `ungetch()`, retornando um valor Unicode.

  Novo na versão 2.6.

## 35.2.3. Outras funções

`msvcrt.``heapmin`()

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