msvcrt — Полезные функции из среды выполнения MS VC++


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

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

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

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

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

msvcrt.locking(fd, mode, nbytes)

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

Raises an auditing event msvcrt.locking with arguments 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 должен быть побитовым OR os.O_APPEND, os.O_RDONLY и os.O_TEXT. Файл дескриптор возвращенный может быть используемый в качестве параметра к os.fdopen(), чтобы создать объект файла.

Raises an auditing event msvcrt.open_osfhandle with arguments handle, flags.

msvcrt.get_osfhandle(fd)

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

Raises an auditing event msvcrt.get_osfhandle with argument fd.

Консольный I/O

msvcrt.kbhit()

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

msvcrt.getch()

Прочитайте keypress и возвращает получающийся символ как байт строка. На консоль ничего не перекликается. Это требование заблокирует, если keypress не будет уже доступен, но не будет ждать, чтобы 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.