ncurses

✍ dations ◷ 2025-11-10 00:47:16 #ncurses

ncurses(new curses)是一个程序库,它提供了API,可以允许程序员编写独立于终端的基于文本的用户界面(英语:Text-based_user_interface)。它是一个虚拟终端中的“类GUI”应用软件工具箱。它还优化了屏幕刷新方法,以减少使用远程shell时遇到的延迟。

ncurses中的来源于单词。这是因为ncurses是System V第4.0版(SVr4)中curses的自由软件克隆, 而那又是停止开发的4.4 BSD curses的增强版。System V严格遵守了X/Open发布的XSI Curses标准。

1980年左右,加州大学伯克利分校为BSD操作系统开发了最初的curses库,以支持面向屏幕的游戏。它最初使用了termcap库,其他程序,如vi编辑器中也使用了这个库。

BSD curses库的成功促使贝尔实验室在他们的System III和System V第1版Unix系统中,发布增强的curses库。这个库功能更强大,而且它用terminfo代替了termcap。然而,由于AT&T的源代码分发政策,改进的curses库并没有被BSD社区广泛接受。

约1982年时,帕维尔·柯蒂斯(Pavel Curtis)开发了贝尔实验室curses的免费软件克隆,名为pcurses。它由其他人维护到了1986年。

1991年年底时,在Zeyd Ben-Halim的努力下,pcurses库得到了进一步改善。1993年11月,新库以名字ncurses发布了,它的首个主版本为1.8.1。随后版本1.8.8(1995)的工作由埃里克·雷蒙主导,他添加了Juergen Pfeifer编写的表单和菜单库。1996年起,它一直由Thomas E. Dickey维护。

大多数ncurses调用可以很方便地移植到旧的curses上。只需重新编译,System V的curses实现就可以支持BSD的curses程序。然而,一些地方却存在问题,如在处理终端缩放上,因为旧的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。一些程序,如GNU Screen和w3m,只使用termcap接口执行屏幕管理。另一些,如GNU Midnight Commander和YaST,使用curses编程接口。

相关

  • 灵枢经《灵枢经》,与《素问》合称《黄帝内经》,是现存最早的中医理论著作,约成书于战国时期,又称《灵枢》、《针经》、《九针》。因其共有九卷又称作《九卷》,在唐朝王冰之前又被称作《
  • 血管造影血管摄影,或称动脉摄影、血管造影,是一种医学影像技术,用x光照射人体内部,观察血管分布的情形,包括动脉、静脉或心房室。 葡萄牙籍医师兼神经学家Egas Moniz(1949年诺贝尔奖的得主
  • 周慧婷周慧婷(1966年2月10日-),是台湾的资深新闻主播,辅仁大学社会学系毕业,美国德州大学奥斯汀分校广电研究所毕业,曾先后担任中国电视公司、超级电视台及三立电视新闻部主播,于2007年5月
  • 蛇蜥亚目蛇蜥亚目(学名:Anguimorpha)有时分类层级为蛇蜥下目,属于爬行纲有鳞目的一个演化支,包含:新蛇蜥下目的蛇蜥科(如蛇蜥、鼍蜥等)、异蜥以及毒蜥科(如希拉毒蜥、连珠蜥蜴)以及古蛇蜥下目(
  • 星甲实义星甲実义(ほしかぶと さねよし,本名:中尾実義,1902年7月21日-1944年9月23日),昭和初年的日本相扑力士,9代目井筒亲方,井筒部屋所属。
  • 让·穆兰让·穆兰(法语:Jean Moulin 1899年6月20日-1943年7月8日)第二次世界大战期间,法国抵抗运动成员,高级官员,全国抵抗运动委员会领导人,将法国抵抗运动统一在戴高乐之下。1943年6月与其
  • 龙门山断层坐标:30°N 105°E / 30°N 105°E / 30; 105龙门山断层是中国西南部的一个逆冲断层,位于青藏高原东缘,四川盆地西缘。自西向东由龙门山后山断裂、龙门山主中央断裂、龙门山主
  • 托帕托帕(Topa),是印度贾坎德邦Hazaribag县的一个城镇。总人口5008(2001年)。该地2001年总人口5008人,其中男性2689人,女性2319人;0—6岁人口787人,其中男402人,女385人;识字率61.94%,其中男
  • MJ FRESH GANG安捷飞 (MJ FRESH GANG,简称MJF),是由台湾饶舌团体顽童MJ116与从小到大朋友于2008年共同创办的时装品牌,MJ代表木栅是顽童MJ116的代表品牌。其服饰最坚持最新美式hip hop风格,灵
  • 铁炮冢叶子铁炮冢叶子(日语:鉄炮塚 葉子,5月7日-),日本女性配音员、演员。出身于茨城县下馆市(现已并入茨城县筑西市)。青二Production所属。1991年以绘本改编电视动画《小小妖怪阿奇、柯奇、