ncurses

✍ dations ◷ 2025-08-17 12:38:42 #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编程接口。

相关

  • 左翼佛教左翼佛教(英语:Engaged Buddhism),亦有译作人间佛教 或入世佛教,意指佛教徒应该努力将他们内在的禅定体验与佛法教义应用在社会、政治、环保、经济之上,并且主动反抗不公义的事物
  • 蜘蛛学动物学人类学 · 人与动物关系学 蜜蜂学 · 节肢动物学 医学节肢动物学 · 鲸类学 贝类学 · 昆虫学 动物行为学 · 蠕虫学 两栖爬行动物学 · 鱼类学 软体动物学 · 哺乳动
  • 冷水江冷水江市是中国湖南省娄底市下辖的县级市,位于湖南中部。冷水江市境内的锡矿山因富含锑矿,而有“世界锑都”之称。地处资江中游、湘黔铁路线上。因境内涟溪两岸多井,井水极冷而
  • 中华人民共和国全国人口普查中国最早的一次人口普查在西汉汉平帝元始二年(公元2年)进行,数据为12,366,470户,57,671,401人。但由于历史文献资料离现在很远,不很完善。中华人民共和国建国以来一共进行过六次
  • 高铭暄高铭暄(1928年5月24日-),浙江玉环人,中华人民共和国法学家、法学教育家,是中华人民共和国第一位刑法学博士生导师。与马克昌共同致力于中国刑法学与世界刑法学的交流,二人并称为“
  • 强望泰强望泰(1793年-1844年),陕西韩城(今韩城市)芝阳乡东赵庄村人。清朝政治人物。嘉庆二十二年(1817年)与中式贡士一体殿试,赐同进士出身,改翰林院庶吉士,供职十年。道光初年外放入川,道光五
  • 张世张世(1966年2月7日-),籍贯四川省成都市,台湾演员。国光艺校戏剧科毕业。1989年因电影《香蕉天堂》获金马奖最佳男配角奖,1994年《验身(又名五魁)》获荷兰鹿特丹影展观众票选最佳男
  • 穆斯塔法四世穆斯塔法四世(奥斯曼土耳其语:مصطفى رابع‎,土耳其语:IV. Mustafa,1779年9月8日-1808年11月16日),是奥斯曼帝国第29任苏丹,兼任哈里发,1807年至1808年在位。他是阿卜杜勒-哈
  • 2019冠状病毒病疫病对教育的影响SARS-CoV-2(病毒)国际运输2019冠状病毒大流行影响了世界各地的教育系统,导致了大部分的学校,大学和学院闭校。大多数的政府都决定暂时性的关闭教
  • 王洪尧王洪尧(1951年11月-),山东济宁人,中国人民解放军上将。中国共产党第十八届中央委员。第十一届全国人大代表。国防大学战役指挥专业毕业。1969年入伍,曾在陆军第六十七集团军、陆军第五十四集团军任职。2000年,任陆军第五十四集团军政治部主任。2003年,任集团军政治委员。2007年,任沈阳军区政治部主任。2010年,任沈阳军区副政委。2011年,接替退役的迟万春上将出任中国人民解放军总装备部政治委员。2016年1月,任新成立的中央军事委员会装备发展部首任政治委员。2018年2月24日,当选为第十三届全