msvcrt ---来自MS VC++运行时的有用例程


这些功能提供了对Windows平台上一些有用功能的访问。一些高级模块使用这些函数来构建其服务的Windows实现。例如, getpass 模块在实现 getpass() 功能。

关于这些函数的更多文档可以在平台API文档中找到。

该模块实现了控制台I/O API的普通和宽字符变体。普通的API只处理ASCII字符,对于国际化应用程序的使用是有限的。尽可能使用宽字符API。

在 3.3 版更改: 此模块中的操作现在引发 OSError 在哪里? IOError 提高了。

文件操作

msvcrt.locking(fd, mode, nbytes)

基于文件描述符锁定文件的一部分 fd 从C运行时。引发 OSError 失败论。文件的锁定区域从当前文件位置扩展到 字节数 字节,并且可以在文件结尾之后继续。 mode 一定是 LK_* 下面列出的常量。文件中的多个区域可以同时锁定,但不能重叠。相邻区域不会合并;它们必须单独解锁。

提出一个 auditing event msvcrt.locking 带着论据 fdmodenbytes .

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运行时文件描述符 手柄 . 这个 flags 参数应为位或 os.O_APPENDos.O_RDONLYos.O_TEXT . 返回的文件描述符可以用作 os.fdopen() 创建文件对象。

提出一个 auditing event msvcrt.open_osfhandle 带着论据 handleflags .

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)

宽字符变量 putch() ,接受Unicode值。

msvcrt.ungetch(char)

导致字节字符串 char 被“推回”到控制台缓冲区;它将是下一个被 getch()getche() .

msvcrt.ungetwch(unicode_char)

宽字符变量 ungetch() ,接受Unicode值。

其他功能

msvcrt.heapmin()

迫使 malloc() 堆以清理自己并将未使用的块返回到操作系统。如果失败,这将提高 OSError .