ncurses是一个程序库,它提供了API,可以允许程序员编写独立于终端的基于文本的用户界面。它是一个虚拟终端中的“类GUI”应用软件工具箱。它还优化了屏幕刷新方法,以减少使用远程shell时遇到的延迟。
ncurses 是一个程序库,它提供了 API,可以允许程序员编写独立于终端的基于文本的用户界面。它是一个虚拟终端中的“类 GUI”应用软件工具箱。它还优化了屏幕刷新方法,以减少使用远程 shell 时遇到的延迟。
ncurses 中的 n 来源于单词 new。这是因为 ncurses 是 System V 第 4.0 版(SVr4)中 curses 的自由软件克隆, 而那又是停止开发的 4.4 BSD curses 的增强版。System V 严格遵守了 X/Open 发布的 XSI Curses 标准。
终端数据库
Ncurses 可以使用 terminfo(与可扩展数据)或 termcap。其它 curses 的实现一般使用 terminfo;少数使用 termcap。有极少数实现(mytinfo 是一个时间较久的例外)都可以使用。
许可
Ncurses 是 GNU 计划的一部分。 它是极少数不在 GNU GPL 或 LGPL 下分发的 GNU 文件;它是在一个类似于 MIT 许可证的宽自由软件许可证下分发的。这是由于在开发者指定著作权时,协议是由自由软件基金会起草的。
在签署协议以将权利交给 FSF 时,有条款写道:
The Foundation promises that all distribution of the Package, or of any work "based on the Package", that takes place under the control of the Foundation or its agents or assignees, shall be on terms that explicitly and perpetually permit anyone possessing a copy of the work to which the terms apply, and possessing accurate notice of these terms, to redistribute copies of the work to anyone on the same terms.
本基金会承诺,在本基金会、或其控制的代理人或受让人中,所分发的任何本软件包,或“基于本软件包”的任何作品,应在条款中明确,永久允许任何人拥有一份适用此条款的作品副本,且在条款中明确声明,以相同条款重分发此作品。
据维护者 Thomas E. Dickey 说,这排除了以任何版本的 GPL 重授权程序,因为它会对链接到这个库的程序产生限制。
使用 ncurses 的程序
有成百的程序使用 ncurses。一些程序,如 GNU Screen 和 w3m,只使用 termcap 接口执行屏幕管理。另一些,如 GNU Midnight Commander 和 YaST,使用 curses 编程接口。