Ncurses
ncurses(new curses)是一个程序库,它提供了API,可以允许程序员编写独立于终端的基于文本的用户界面。它是一个虚拟终端中的“类GUI”应用软件工具箱。它还优化了屏幕刷新方法,以减少使用远程shell时遇到的延迟。 历史ncurses中的n来源于单词new。这是因为ncurses是System V第4.0版(SVr4)中curses的自由软件克隆, 而那又是停止开发的4.4 BSD curses的增强版。[1]System V严格遵守了X/Open发布的XSI Curses标准。 curses1980年左右,加州大学伯克利分校为BSD操作系统开发了最初的curses库,以支持面向屏幕的游戏。它最初使用了termcap库,其他程序,如vi编辑器中也使用了这个库。[1] BSD curses库的成功促使贝尔实验室在他们的System III和System V第1版Unix系统中,发布增强的curses库。这个库功能更强大,而且它用terminfo代替了termcap。然而,由于AT&T的源代码分发政策,改进的curses库并没有被BSD社区广泛接受。[1] pcurses约1982年时,帕维尔·柯蒂斯(Pavel Curtis)开发了贝尔实验室curses的免费软件克隆,名为pcurses。它由其他人维护到了1986年。[2] ncurses1991年年底时,在Zeyd Ben-Halim的努力下,pcurses库得到了进一步改善。[1][2][3] 1993年11月,新库以名字ncurses发布了,它的首个主版本为1.8.1。 随后版本1.8.8(1995)的工作由埃里克·雷蒙主导,他添加了Juergen Pfeifer编写的表单和菜单库。[4]1996年起,它一直由Thomas E. Dickey维护。[2] 大多数ncurses调用可以很方便地移植到旧的curses上。只需重新编译,System V的curses实现就可以支持BSD的curses程序。[5]然而,一些地方却存在问题,如在处理终端缩放上,因为旧的curses没有对应的功能。 终端数据库Ncurses可以使用terminfo(与可扩展数据)或termcap。其它curses的实现一般使用terminfo;少数使用termcap。有极少数实现(mytinfo是一个时间较久的例外[6])都可以使用。 许可Ncurses是GNU计划的一部分。 它是极少数不在GNU GPL或LGPL下分发的GNU文件;它是在一个类似于MIT许可证的宽自由软件许可证下分发的。[7] 这是由于在开发者指定版权时,协议是由自由软件基金会起草的。 在签署协议以将权利交给FSF时,有条款写道:
据维护者Thomas E. Dickey说,这排除了以任何版本的GPL重授权程序,因为它会对链接到这个库的程序产生限制。[7] 使用ncurses的程序有成百的程序使用ncurses。[8][9]一些程序,如GNU Screen和w3m,只使用termcap接口执行屏幕管理。另一些,如GNU Midnight Commander和YaST,使用curses编程接口。 参见
参考资料
外部链接
编程介绍
工具箱语言绑定
分发和包 |
Portal di Ensiklopedia Dunia