ncurses

✍ dations ◷ 2025-06-09 20:03:02 #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编程接口。

相关

  • 化学符号化学符号以拉丁字母缩写的形式表达化学元素或官能基。化学元素的符号通常为一个或两个字母,而一些人造元素的IUPAC临时符号则使用三个字母。元素的化学符号在元素周期表中使
  • 越南广播电台除特别注明外,本文所有时间均以东七区时间(UTC+7)为准。越南广播电台(越南语:Đài Vô tuyến Việt Nam,简称VTVN;英语:Radio Vietnam;法语:Le Radio-diffusion National du Vietnam
  • 土著民族原住民,旧称土著,是指某地方较早定居的族群,皆源自外来者(尤其是入侵者)对本地人(或族群)的称谓,原意指当地居民、原居民,但多具有土番、番人、土人等落后的贬意,然而到了二十世纪后期
  • 弗里德里希·艾伯特弗里德里希·艾伯特(德语:Friedrich Ebert,1871年2月4日-1925年2月28日),生于海德堡,德国政治家。魏玛共和国首任总统。1913年任德国社会民主党主席,1918年革命爆发后,组成社会民主
  • 库尔德电影库尔德电影是以库尔德人这一族群为题材的一种电影。电影使用的语言基本以库尔德人传统使用的库尔德语、中库尔德语、扎扎其语为主;受电影制作地和库尔德人所在国的影响,也使用
  • 平山周平山周(ひらやま しゅう,Hirayama Shu,1870年-1940年),日本人,明治3年(公元1870年)出生,逝世于昭和15年(公元1940年) 。日本福冈县出身,东京麻布东洋英和学校就学,与宫崎滔天同行至暹罗。1
  • 谷斯范谷斯范(1916年-1999年),笔名艾荻、江荻,男,浙江上虞人,中国作家、编辑,浙江省作家协会原副主席,中国作家协会原理事。
  • 范崇嬿范崇嬿(1944年5月18日-),女,辽宁海城人,中华人民共和国少年儿童教育专家,中华全国妇女联合会原常务委员。1961年毕业于沈阳市和平区师范学校,后任沈阳市和平区南宁幼儿园、南宁小学
  • 约翰·西塞罗约翰·西塞罗(德语:Johann Cicero,1455年8月2日-1499年1月9日),勃兰登堡选帝侯,1486年至1499年在位。1476年,约翰·西塞罗与图林根的玛格丽特(英语:Margaret of Thuringia)结婚,两人共有
  • 莫维勒洞穴莫维勒洞穴(罗马尼亚语:Peștera Movile)是一个位于罗马尼亚康斯坦察县曼加利亚市郊,距黑海海岸不到数公里的自然封闭岩洞,于1986年被克里斯蒂安·拉斯库(Cristian Lascu)发现。该