Документация Python неофициальный перевод
Содержание страницы

msvcrt – полезные утилиты из MS VC++ runtimemsvcrt – Useful routines from the MS VC++ runtime

Исходный код: PC/msvcrtmodule.c


Эти функции предоставляют доступ к некоторым полезным возможностям на платформах Windows. Некоторые модули более высокого уровня используют эти функции для создания реализаций своих служб под Windows. Например, модуль getpass использует это при реализации функции getpass().

Дополнительную документацию по этим функциям можно найти в документации Platform API.

Модуль реализует как обычную, так и широкосимвольную версию консольного API ввода-вывода. Обычный API работает только с ASCII-символами и имеет ограниченное применение для интернационализированных приложений. Широкосимвольный API следует использовать везде, где это возможно.

Изменено в версии 3.3: Операции в этом модуле теперь вызывают OSError вместо IOError.

Файловые операцииFile Operations

msvcrt.locking(fd, mode, nbytes)

Блокирует часть файла на основе файлового дескриптора fd из C runtime. В случае ошибки вызывает OSError. Заблокированная область файла простирается от текущей позиции файла на nbytes байт и может выходить за конец файла. mode должен быть одной из констант LK_*, перечисленных ниже. Несколько областей в файле могут быть заблокированы одновременно, но не должны перекрываться. Соседние области не объединяются; их необходимо разблокировать по отдельности.

Вызывает событие аудита msvcrt.locking с аргументами fd, mode, nbytes.

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)

Создаёт файловый дескриптор C runtime из файлового хендла handle. Параметр flags должен представлять собой побитовое ИЛИ констант os.O_APPEND, os.O_RDONLY, os.O_TEXT и os.O_NOINHERIT. Возвращаемый файловый дескриптор может использоваться в качестве параметра для os.fdopen() для создания файлового объекта.

Файловый дескриптор по умолчанию наследуется. Передайте флаг os.O_NOINHERIT, чтобы сделать его ненаследуемым.

Возбуждает событие аудита msvcrt.open_osfhandle с аргументами handle, flags.

msvcrt.get_osfhandle(fd)

Возвращает файловый хендл для файлового дескриптора fd. Возбуждает OSError, если fd не распознан.

Вызывает событие аудита msvcrt.get_osfhandle с аргументом fd.

Консольный ввод-выводConsole I/O

msvcrt.kbhit()

Возвращает ненулевое значение, если ожидает чтения нажатие клавиши. В противном случае возвращает 0.

msvcrt.getch()

Считывает нажатие клавиши и возвращает полученный символ в виде байтовой строки. Ничего не выводится в консоль. Этот вызов блокируется, если нажатие ещё не доступно, но не будет ждать нажатия Enter. Если нажатая клавиша была специальной функциональной клавишей, функция вернёт '\000' или '\xe0'; следующий вызов вернёт код клавиши. Нажатие Control-C не может быть считано этой функцией.

msvcrt.getwch()

Расширенный (wide char) вариант getch(), возвращающий значение Unicode.

msvcrt.getche()

Аналогично getch(), но нажатие клавиши будет выводиться на экран, если оно соответствует печатному символу.

msvcrt.getwche()

Расширенный (wide char) вариант getche(), возвращающий значение Unicode.

msvcrt.putch(char)

Выводит байтовую строку char на консоль без буферизации.

msvcrt.putwch(unicode_char)

Расширенный (wide char) вариант putch(), принимающий значение Unicode.

msvcrt.ungetch(char)

Помещает байтовую строку char обратно в буфер консоли; она будет прочитана как следующий символ с помощью getch() или getche().

msvcrt.ungetwch(unicode_char)

Расширенный (wide char) вариант ungetch(), принимающий значение Unicode.

Другие функцииOther Functions

msvcrt.heapmin()

Принудительно очищает кучу malloc() и возвращает неиспользуемые блоки операционной системе. В случае ошибки вызывает исключение OSError.

msvcrt.set_error_mode(mode)

Изменяет место, куда среда выполнения C записывает сообщение об ошибке, которая может привести к завершению программы. mode должна быть одной из констант OUT_*, перечисленных ниже, или REPORT_ERRMODE. Возвращает предыдущее значение или -1 в случае ошибки. Доступно только в отладочной сборке Python.

msvcrt.OUT_TO_DEFAULT

Приёмник ошибок определяется типом приложения. Доступно только в отладочной сборке Python.

msvcrt.OUT_TO_STDERR

Приёмник ошибок – стандартный поток ошибок. Доступно только в отладочной сборке Python.

msvcrt.OUT_TO_MSGBOX

Приёмник ошибок – диалоговое окно. Доступно только в отладочной сборке Python.

msvcrt.REPORT_ERRMODE

Сообщает текущее значение режима ошибок. Доступно только в отладочной сборке Python.

msvcrt.CrtSetReportMode(type, mode)

Задает место назначения (одно или несколько) для определенного типа отчета, создаваемого _CrtDbgReport() в среде выполнения MS VC++. type должна быть одной из констант CRT_*, перечисленных ниже. mode должна быть одной из констант CRTDBG_*, перечисленных ниже. Доступно только в отладочной сборке Python.

msvcrt.CrtSetReportFile(type, file)

После использования CrtSetReportMode() для задания CRTDBG_MODE_FILE можно указать дескриптор файла, который будет получать текст сообщения. type должна быть одной из констант CRT_*, перечисленных ниже. file должен быть желаемым дескриптором файла. Доступно только в отладочной сборке Python.

msvcrt.CRT_WARN

Предупреждения, сообщения и информация, не требующие немедленного внимания.

msvcrt.CRT_ERROR

Ошибки, неисправимые проблемы и ситуации, требующие немедленного внимания.

msvcrt.CRT_ASSERT

Ошибки утверждений.

msvcrt.CRTDBG_MODE_DEBUG

Записывает сообщение в окно вывода отладчика.

msvcrt.CRTDBG_MODE_FILE

Записывает сообщение в файловый дескриптор, предоставленный пользователем. Для указания конкретного файла или потока, используемого в качестве назначения, следует вызвать CrtSetReportFile().

msvcrt.CRTDBG_MODE_WNDW

Создаёт диалоговое окно для отображения сообщения вместе с кнопками Abort, Retry и Ignore.

msvcrt.CRTDBG_REPORT_MODE

Возвращает текущий режим для указанного типа.

msvcrt.CRT_ASSEMBLY_VERSION

Версия сборки CRT из файла заголовка crtassem.h.

msvcrt.VC_ASSEMBLY_PUBLICKEYTOKEN

Токен открытого ключа сборки VC из файла заголовка crtassem.h.

msvcrt.LIBRARIES_ASSEMBLY_NAME_PREFIX

Префикс имени сборки Libraries из файла заголовка crtassem.h.