文件名称:终端的窗口大小-cadence入门教程
文件大小:5.91MB
文件格式:PDF
更新时间:2024-07-02 09:20:09
Unix linux 环境 编程
11.12 终端的窗口大小 S V R 4和伯克利系统都提供了一种功能,用其可以对当前终端窗口的大小进行跟踪,在窗 口大小发生变化时,使内核通知前台进程组。内核为每个终端和伪终端保存一个 w i n s i z e结构。 此结构的作用是: (1) 用i o c t l(见3 . 1 4节)的T I O C G W I N S Z命令可以取此结构的当前值。 (2) 用i o c t l的T I O C S W I N S Z命令可以将此结构的新值存放到内核中。如果此新值与存放在 内核中的当前值不同,则向前台进程组发送 S I G W I N C H信号。(注意,从表 1 0 - 1中可以看出, 此信号的系统默认动作是忽略。) (3) 除了存放此结构的当前值以及在此值改变时产生一个信号以外,内核对该结构不进行 任何其他操作。对结构中的值进行解释完全是应用程序的工作。 提供这种功能的目的是,当窗口大小发生变化时通知应用程序(例如 v i编辑程序)。应用 程序接到此信号后,它可以取得窗口大小的新值,然后重绘屏幕。 实例 程序11 - 1 2打印当前窗口大小,然后睡眠。每次窗口大小改变时,就捕捉到 S I G W I N C H信 号,然后打印新的窗口大小。必须用一个信号终止此程序。 2 7 0 U N I X环境高级编程