1. 首页
  2. 考试认证
  3. 其它
  4. 终端的窗口大小-hds ams 2500用户手册

终端的窗口大小-hds ams 2500用户手册

上传者: 2024-07-22 16:11:09上传 PDF文件 17.98MB 热度 17次

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信号,然后打印新的窗口大小。必须用一个信号终止此程序。

对于更多关于内核通知链的深入探讨,可以参考这篇文章:Linux内核通知链。不仅如此,如果你对通知窗口的Demo感兴趣,可以看看新闻通知窗口Demo。想要了解如何实现类似QQ的消息通知窗口?你可以访问类似QQ的弹出通知窗口,这里有详细的源码解释。对于那些希望更深入了解Linux内核中通知块操作的人,Linux内核中通知块操作这篇文章也是不容错过的。

你不仅能更加全面地了解终端窗口大小的跟踪与通知机制,还能掌握更多实用的编程技巧和应用实例。谁说技术文章一定要枯燥无味?掌握了这些知识,你就是下一位技术大咖!

下载地址
用户评论