34.2. msvcrt
— 来自 MS VC++ 运行时的有用例程¶
这些函数提供了对 Windows 平台上一些有用功能的访问。一些更高级别的模块使用这些函数来构建其服务的 Windows 实现。 例如, getpass
模块在实现 getpass()
函数时使用了这些函数。
关于这些函数的更多信息可以在平台 API 文档中找到。
该模块实现了控制台 I/O API 的普通和宽字符变体。普通的 API 只处理ASCII字符,国际化应用受限。应该尽可能地使用宽字符 API 。
34.2.1. 文件操作¶
-
msvcrt.
locking
(fd, mode, nbytes)¶ 基于文件描述符 fd 从 C 运行时锁定文件的某一部分。 失败时引发
OSError
。 锁定的文件区域从当前文件位置开始扩展 nbytes 个字节,并可能持续到超出文件末尾。 mode 必须为下面列出的LK_*
之一。 一个文件中的多个区域可以被同时锁定,但是不能重叠。 相邻区域不会被合并;它们必须单独被解锁。
-
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
按位 OR 的结果。 返回的文件描述符可以被用作os.fdopen()
的形参以创建一个文件对象。