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


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

有关这些Function的更多文档,请参见 Platform API 文档。

该模块实现了控制台 I/O api 的普通和宽字符变体。普通 API 仅处理 ASCII 字符,并且在国际化应用程序中用途有限。应尽可能使用 Wide char API。

在版本 3.3 中进行了更改:此模块中的操作现在引发OSError,其中引发IOError

File Operations

  • msvcrt. locking(* fd mode nbytes *)
    • 从 C 运行时基于文件 Descriptors* fd 锁定文件的一部分。失败时引发OSError。文件的锁定区域从当前文件位置开始扩展了 nbytes *个字节,并且可能会持续到文件末尾。 * mode *必须是下面列出的LK_*常量之一。文件中的多个区域可以同时锁定,但不能重叠。相邻区域不合并;它们必须分别解锁。

用参数fdmodenbytes引发auditing event msvcrt.locking

  • msvcrt. LK_LOCK

  • msvcrt. LK_RLCK

    • 锁定指定的字节。如果无法锁定字节,则程序将在 1 秒后立即重试。如果在try 10 次之后无法锁定字节,则引发OSError
  • msvcrt. LK_NBLCK

  • msvcrt. LK_NBRLCK

    • 锁定指定的字节。如果字节不能锁定,则引发OSError
  • msvcrt. LK_UNLCK

    • 解锁指定的字节,该字节必须先前已被锁定。
  • msvcrt. setmode(* fd flags *)

    • 设置文件 Descriptors* fd 的行尾转换模式。要将其设置为文本模式, flags *应该为os.O_TEXT;对于二进制文件,应为os.O_BINARY
  • msvcrt. open_osfhandle(* handle flags *)

    • 从文件句柄* handle *创建一个 C 运行时文件 Descriptors。 * flags *参数应为os.O_APPENDos.O_RDONLYos.O_TEXT的按位或。返回的文件 Descriptors 可以用作os.fdopen()的参数以创建文件对象。

用参数handleflags引发auditing event msvcrt.open_osfhandle

  • msvcrt. get_osfhandle(* fd *)
    • 返回文件 Descriptors* fd 的文件句柄。如果无法识别 fd *,则引发OSError

用参数fd引发auditing event msvcrt.get_osfhandle

Console I/O

  • msvcrt. kbhit ( )

    • 如果正在 await 读取按键,则返回True
  • msvcrt. getch ( )

    • 读取按键并以字节字符串形式返回结果字符。什么也没有回应到控制台。如果尚未提供按键,则该呼叫将被阻止,但不会 await 按下 Enter 键。如果按下的键是特殊Function键,则将返回'\000''\xe0';下一次调用将返回键码。使用此Function无法读取 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 值。

Other Functions

  • msvcrt. heapmin ( )
    • 强制malloc()堆清理自身并将未使用的块返回到 os。失败时,将引发OSError