在这个Python代码中发生了什么来获得终端窗口的大小?

2024-09-28 22:35:01 发布

您现在位置:Python中文网/ 问答频道 /正文

此代码返回终端窗口的大小。你知道吗

def gettermsize():
    s = struct.pack("HHHH", 0, 0, 0, 0)
    a = struct.unpack('hhhh', fcntl.ioctl(sys.stdout.fileno(), termios.TIOCGWINSZ , s))
    return (a[0], a[1])

它到底在做什么?你知道吗


Tags: 代码终端defstdoutsysstructpackioctl
1条回答
网友
1楼 · 发布于 2024-09-28 22:35:01

一般来说,ioctrl调用将允许操作员查询&;/。在这种情况下,标准输出控制台(由sys.stdout.fileno()提供的句柄)正在查询终端设备(termios)、窗口大小(TIOCGWINSZ),它需要一个由4个16位无符号值组成的结构来处理(s),它返回4个有符号值,其中前两个值可能用作高度和宽度。需要打包/解包值的原因是,这实际上是直接调用C代码。你知道吗

相关问题 更多 >