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.fdopen() для создания объекта файла.

Вызывает auditing event msvcrt.open_osfhandle с аргументами handle, flags.

msvcrt.get_osfhandle(fd)

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

Вызывает auditing event msvcrt.get_osfhandle с аргументом fd.

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

msvcrt.kbhit()

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

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)

Широкий char-вариант putch(), принимающий значение Unicode.

msvcrt.ungetch(char)

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

msvcrt.ungetwch(unicode_char)

Широкий char-вариант ungetch(), принимающий значение Unicode.

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

msvcrt.heapmin()

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

Вернуться на верх