4、冒险类游戏。在当时,仅仅控制游戏屏幕的外观显示就需要编写大量的代码,因为它们使用的是古老的termios甚至是tty接口。巨大的工作量迫使Bill Joy和Ken Arnold将rogue游戏中的所有的屏幕处理和光标移动的函数汇集到一个函数库中。这就形成了最早的也是最简单的curses处理库的雏形。它最终随着BSD UNIX的早期版本发行开来。在这个版本中使用的是当时业已存在的termcap数据库来描述终端信息。 后来贝尔实验室的Mark Horton在System III UNIX中重新编写了curses。它相对以前的版本有了很大的扩展和提
5、高,增加了一些非常新的特性。它首先将termcap数据库改进为 terminfo数据库。terminfo数据库完全由Horton开发编写,它是从termcap发展而来,而且更为中要重要的是其中引进了参数化性能的概念,这样使得描述多视频属性以及彩色终端成为可能。在后来的AT&T System V 版本中,curses就扩展了更多功能和性能,包括了对窗体、菜单、面板、表单等组件以及对鼠标的支持。这时候的curses内容以及设计与最初的BSD版本的 curses在功能和复杂性上已经相去甚远。1.1.2 curses包内容本书的curses以Syst
6、em V UNIX的版本为主,curses包主要包括下面的四个开发库,如表1.1所示。在后面的章节中我们会针对每一个库进行详细深入的探讨。表1.1 curses包内容库名描述curses最早的curses包只包含这一部分,主要控制屏幕的输入和输出,光标的操作,窗口的创建和操作等。panel类似于窗口堆栈,不同的窗口可以存放于其中,并且可以在其中进行移动。menu新增的部分,主要包括创建菜单并且与之交互的函数,主要用来接受用户的选择。form包括创建表单以及与之进行交互的函数,主要用来接受用户数据输入 1.1.3 curses包移植性正如前言部