msvcrt --- 来自 MS VC++ 运行时的有用例程¶
源代码: PC/msvcrtmodule.c
These functions provide access to some useful capabilities on Windows platforms.
Some higher-level modules use these functions to build the Windows
implementations of their services. For example, the getpass module uses
this in the implementation of the getpass() function.
关于这些函数的更多信息可以在平台 API 文档中找到。
该模块实现了控制台 I/O API 的普通和宽字符变体。普通的 API 只处理ASCII字符,国际化应用受限。应该尽可能地使用宽字符 API 。
适用范围: Windows.
文件操作¶
- 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_UNLCK¶
解锁指定的字节数据,它们必须在之前已被锁定。
- msvcrt.setmode(fd, flags)¶
设置文件描述符 fd 的行结束符转写模式。 要将其设为文本模式,则 flags 应当为
os.O_TEXT;设为二进制模式,则应当为os.O_BINARY。
- msvcrt.open_osfhandle(handle, flags)¶
基于文件句柄 handle 创建一个 C 运行时文件描述符。 flags 形参应当是
os.O_APPEND,os.O_RDONLY,os.O_TEXT和os.O_NOINHERIT按位 OR 的结果。 返回的文件描述符可以被用作传给os.fdopen()的形参以创建一个文件对象。该文件描述符默认是可继承的。 传入
os.O_NOINHERIT标志可使其成为不可继承的。引发一个 审计事件
msvcrt.open_osfhandle并附带参数handle,flags。
控制台 I/O¶
- msvcrt.kbhit()¶
如果正在等待读取一个按键则返回一个非零值。 在其他情况下,将返回 0。
- msvcrt.getch()¶
读取一个按键并将结果字符以字节串形式返回。 不会回显到控制台。 如果没有任何按键可用则此调用将会阻塞,但它不会等待 Enter 被按下。 如果按下的键是一个特殊功能键,此函数将返回
'\000'或'\xe0';下一次调用将返回键代码。 Control-C 按键无法使用此函数来读取。
- msvcrt.putch(char)¶
将字节串 char 打印到控制台,不使用缓冲区。
其他函数¶
- msvcrt.set_error_mode(mode)¶
更改 C 运行时为可能终止程序的错误写入错误消息的位置。 mode 必须是下面列出的
OUT_*常量或REPORT_ERRMODE中的一个。 返回旧设置或者在有错误发生时返回 -1。 仅在 Python 调试构建版 中可用。
- msvcrt.OUT_TO_DEFAULT¶
错误 sink 是由应用程序的类型决定的。 仅在 Python 调试构建版 中可用。
- msvcrt.OUT_TO_STDERR¶
错误 sink 是某个标准错误。 仅在 Python 调试构建版 中可用。
- msvcrt.OUT_TO_MSGBOX¶
错误 sink 是某个消息框。 仅在 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¶
返回指定 type 当前的 mode。
- msvcrt.CRT_ASSEMBLY_VERSION¶
CRT Assembly 版本,来自
crtassem.h头文件。
- msvcrt.VC_ASSEMBLY_PUBLICKEYTOKEN¶
VC Assembly 公钥令牌,来自
crtassem.h头文件。
- msvcrt.LIBRARIES_ASSEMBLY_NAME_PREFIX¶
Libraries Assembly 名称前缀,来自
crtassem.h头文件。