tty --- 终端控制功能¶

Source code: Lib/tty.py


tty 模�定义了将 tty 放入 cbreak 和 raw 模�的函数。

�用性: Unix。

因为它需� termios 模�,所以�能在 Unix 上�行。

tty 模�定义了以下函数:

tty.cfmakeraw(mode)¶

�作 tty 属性列表 mode,它是一个与 termios.tcgetattr() 的返回值类似的列表,将其转�为原始模� tty 的属性列表。

在 3.12 版本加入.

tty.cfmakecbreak(mode)¶

�作 tty 属性列表 mode,它是一个与 termios.tcgetattr() 的返回值类似的列表,将其转�为 cbreak 模�的 tty 的属性列表。

这将清除 mode 中的 ECHO 和 ICANON 本地模�旗标并将最�输入设为 1 字节且无延迟。

在 3.12 版本加入.

在 3.12.2 版本�生�更: ICRNL 旗标将��被清除。 这与 Linux 和 macOS 的 stty cbreak 行为以� setcbreak() 在历�上所�的相匹�。

tty.setraw(fd, when=termios.TCSAFLUSH)¶

将文件�述符 fd 的模�改为 raw。 如果 when 被�略,它将默认为 termios.TCSAFLUSH,并将被传给 termios.tcsetattr()。 termios.tcgetattr() 的返回值在将 fd 设为 raw 模��会被�存;该值将被返回。

在 3.12 版本�生�更: 现在返回值就是原本的 tty 属性 ,而�是 None。

tty.setcbreak(fd, when=termios.TCSAFLUSH)¶

将文件�述符 fd 的模�改为 cbreak。 如果 when 被�略,它将默认为 termios.TCSAFLUSH,并将被传给 termios.tcsetattr()。 termios.tcgetattr() 的返回值在将 fd 设为 cbreak 模��会被�存;该值将被返回。

这将清除 ECHO 和 ICANON 本地模�旗标并将最�输入设为 1 字节且无延迟。

在 3.12 版本�生�更: 现在返回值就是原本的 tty 属性 ,而�是 None。

在 3.12.2 版本�生�更: ICRNL 旗标将��被清除。 这��了 Python 3.11 �更早版本的行为并与 Linux, macOS 和BSD 在它们的 stty(1) 指�页对于 cbreak 模�的�述相匹�。

��

模� termios

低级终端控制接�。