msvcrt
— Полезные подпрограммы из среды выполнения MS VC++
Данные функции предоставляют доступ к некоторым полезным возможностям на
платформах Windows. Некоторые модули более высокого уровня используют данные
функции для создания реализации своих служб в Windows. Например, модуль
getpass
использует его в реализации функции getpass()
.
Дополнительную документацию по этим функциям можно найти в документации API платформы.
Модуль реализует как обычный, так и расширенный char варианты консольного API ввода/вывода. Обычный API работает только с ASCII символами и имеет ограниченное применение для интернационализированных приложений. API широких символов следует использовать везде, где это возможно.
Изменено в версии 3.3: Операции в этом модуле теперь вызывают OSError
, когда раньше
вызывалось IOError
.
Файловые операции
-
msvcrt.
locking
(fd, mode, nbytes) Блокирует части файла на основе дескриптора файла fd из среды выполнения C. При сбое вызывает
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 из дескриптора файла handle. Параметр flags должен быть побитовым ИЛИ
os.O_APPEND
,os.O_RDONLY
иos.O_TEXT
. Возвращённый файловый дескриптор может использоваться как параметрos.fdopen()
для создания файлового объекта.Вызывает событие аудита
msvcrt.open_osfhandle
с аргументамиhandle
,flags
.
-
msvcrt.
get_osfhandle
(fd) Возвращает дескриптор файла для файлового дескриптора fd. Вызывает
OSError
, если fd не распознан.Вызывает событие аудита
msvcrt.get_osfhandle
с аргументомfd
.
Консольный ввод/вывод
-
msvcrt.
kbhit
() Возвращает
True
, если нажатие клавиши ожидает чтения.
-
msvcrt.
getch
() Читает нажатие клавиши и возвращает полученный символ в виде строки байтов. На консоль ничего не выводится. Данный вызов будет заблокирован, если нажатие клавиши ещё не доступно, но не будет ждать нажатия Enter. Если нажатая клавиша была специальной функциональной клавишей, возвращается
'\000'
или'\xe0'
; следующий вызов вернёт код ключа. Данная функция не может прочитать нажатие клавиши Control-C.
-
msvcrt.
getwch
() Широкий символьный вариант
getch()
, возвращающий Юникод значение.
-
msvcrt.
getche
() Аналогична
getch()
, но нажатие клавиши будет отражено, если оно представляет печатный символ.
-
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
() Принудительно очищает кучу
malloc()
и возвращает неиспользуемые блоки в операционную систему. В случае сбоя вызываетOSError
.