msvcrt — Полезные подпрограммы из среды выполнения MS VC++


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

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

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

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

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

msvcrt.locking(fd, mode, nbytes)

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

Поднимает auditing event 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 из файлового дескриптора handle. Параметр flags должен быть побитовым ИЛИ из os.O_APPEND, os.O_RDONLY, os.O_TEXT и os.O_NOINHERIT. Возвращенный дескриптор файла может быть использован в качестве параметра os.fdopen() для создания файлового объекта.

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

Поднимает auditing event msvcrt.open_osfhandle с аргументами handle, flags.

msvcrt.get_osfhandle(fd)

Возвращает файловый дескриптор fd. Возвращает OSError, если fd не распознан.

Поднимает auditing event msvcrt.get_osfhandle с аргументом fd.

Консольный ввод/вывод

msvcrt.kbhit()

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

msvcrt.getch()

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

msvcrt.getwch()

Широкосимвольный вариант getch(), возвращающий значение Unicode.

msvcrt.getche()

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

msvcrt.getwche()

Широкосимвольный вариант getche(), возвращающий значение Unicode.

msvcrt.putch(char)

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

msvcrt.putwch(unicode_char)

Широкосимвольный вариант putch(), принимающий значение Unicode.

msvcrt.ungetch(char)

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

msvcrt.ungetwch(unicode_char)

Широкосимвольный вариант ungetch(), принимающий значение Unicode.

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

msvcrt.heapmin()

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

msvcrt.set_error_mode(mode)

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

msvcrt.OUT_TO_DEFAULT

Поглотитель ошибок определяется типом приложения. Доступно только в debug build of Python.

msvcrt.OUT_TO_STDERR

Поглотитель ошибок - это стандартная ошибка. Доступно только в debug build of Python.

msvcrt.OUT_TO_MSGBOX

Поглотитель ошибок представляет собой окно сообщения. Доступно только в debug build of Python.

msvcrt.REPORT_ERRMODE

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

msvcrt.CrtSetReportMode(type, mode)

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

msvcrt.CrtSetReportFile(type, file)

После использования CrtSetReportMode() для указания CRTDBG_MODE_FILE вы можете указать хэндл файла для получения текста сообщения. type должна быть одной из констант CRT_*, перечисленных ниже. file должен быть хэндлом файла, который вы хотите указать. Доступно только в debug build of 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 Assembly из заголовочного файла crtassem.h.

msvcrt.VC_ASSEMBLY_PUBLICKEYTOKEN

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

msvcrt.LIBRARIES_ASSEMBLY_NAME_PREFIX

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