34.2. msvcrt
- 从MS VC ++运行时的有用例程
这些函数提供对Windows平台上一些有用功能的访问。一些更高级别的模块使用这些功能来构建他们的服务的Windows实现。例如,getpass
模块在实现getpass()
函数时使用此方法。
有关这些功能的更多文档可以在Platform API文档中找到。
该模块实现控制台I / O API的正常和宽字符变量。普通API仅处理ASCII字符,并且对于国际化应用程序的使用有限。应尽可能使用宽字符API。
34.2.1. File Operations
-
msvcrt.
locking
(fd, mode, nbytes) 根据C运行时文件描述器fd锁定文件的一部分。失败时引发OSError
。文件的锁定区域从nbytes字节的当前文件位置延伸,并且可以继续超出文件结尾。模式必须是下面列出的LK_*
常量之一。文件中的多个区域可以同时被锁定,但是可以不重叠。相邻区域不合并;它们必须单独解锁。
-
msvcrt.
LK_LOCK
-
msvcrt.
LK_RLCK
锁定指定的字节。如果字节不能被锁定,程序在1秒后立即再次尝试。如果在尝试10次后,字节不能被锁定,则会引发OSError
。
-
msvcrt.
LK_NBLCK
-
msvcrt.
LK_NBRLCK
锁定指定的字节。如果字节不能锁定,则会引发OSError
。
-
msvcrt.
LK_UNLCK
解锁指定的字节,必须先前已锁定。
-
msvcrt.
setmode
(fd, flags) 设置文件描述器fd的行末翻译模式。要将其设置为文本模式,标志应为os.O_TEXT
;对于二进制,应为os.O_BINARY
。
-
msvcrt.
open_osfhandle
(handle, flags) 从文件句柄句柄创建C运行时文件描述器。标志参数应为os.O_APPEND
,os.O_RDONLY
和os.O_TEXT
的按位或。返回的文件描述器可以用作os.fdopen()
的参数来创建文件对象。
-
msvcrt.
get_osfhandle
(fd) 返回文件描述器fd的文件句柄。引发OSError
如果fd无法识别。
34.2.2. Console I/O
-
msvcrt.
kbhit
() 如果键盘正在等待读取,则返回true。
-
msvcrt.
getch
() 读取按键并将结果字符作为字节字符串返回。没有回声到控制台。如果按键不可用,则此调用将阻止,但不会等待按下Enter
。如果按下的键是特殊功能键,则将返回'\000'
或'\xe0'
;下一个调用将返回键码。使用此功能无法读取Control-C
按键。
-
msvcrt.
getwch
() getch()
的宽字符变量,返回Unicode值。
-
msvcrt.
getche
() 类似于getch()
,但是如果它代表一个可打印的字符,keypress将被回显。
-
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值。
34.2.3. Other Functions
-
msvcrt.
heapmin
() 强制malloc()
堆清理自己并将未使用的块返回到操作系统。失败时,此引发OSError
。