ncurses

✍ dations ◷ 2025-09-11 03:49:55 #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编程接口。

相关

  • 货物崇拜货物崇拜(英文:Cargo Cults,又译货物运动)是一种宗教形式,特别出现于一些与世隔绝的原住民中。当货物崇拜者看见外来的先进科技物品,便会将之当作神祇般崇拜。最为知名的货物崇拜,
  • 诺贝尔经济学奖得主列表诺贝尔经济学奖,正式名称为“瑞典中央银行纪念阿尔弗雷德·诺贝尔经济学奖”(瑞典语:Sveriges riksbanks pris i ekonomisk vetenskap till Alfred Nobels minne),是由瑞典皇家科
  • 南溪山南溪山因南溪萦绕而得名(因山有白龙洞,又名白龙山),现位于广西桂林的南溪山公园内,在中山南路、崇信路接合的八一桥东侧,将军桥头。早在唐代南溪山就已开发,其摩崖石刻有近200件,多
  • 绫辻行人绫辻行人(1960年12月23日-),京都府京都市出生,本名内田直行,是日本著名的推理小说作家。新本格派的开创者。1987年,他还是研究所的学生时,即以《十角馆事件》在文坛崭露头角,掀起一股
  • 曹察曹察(1499年-1558年),字明卿,号晴峰,直隶无锡硕放人,明朝政治人物,同进士出身。嘉靖八年(1529年)己丑科进士。授官福建邵武县知县,升汀州府知府,官至户部郎中。曹察有女入宫为妃,深得世宗
  • 蔡彦敏蔡彦敏(1961年-2016年9月19日)女,广东广州人,中华人民共和国诉讼法学家。蔡彦敏1979年至1986年在中国政法大学先后攻读本科、硕士研究生,获得法学学士、法学硕士学位。2000年4月,在
  • 程长庚程长庚(1811年-1880年),清京剧演员、戏剧活动家。名椿,字玉珊(一作玉山),安徽潜山(今潜山县)人,主演老生,是京剧形成的奠基人之一。他于道光二年(1822)随父北上入京,始以《文昭关》、
  • 月球快递月球快递(Moon Express)是一间美国私人公司,由一群硅谷太空企业家所成立,以赢得Google月球X大奖,挖掘月球自然资源,获得经济价值为目标。2010年8月,杰恩(Naveen Jain) 、巴尼·佩尔和
  • 德特福德桥站德特福德桥站(英语:Deptford Bridge DLR station)是码头区轻便铁路的一个车站,位于伦敦东南部德特福德。该站位于伦敦第3收费区。德特福德桥站开通于1999年。
  • 中部内陆高速公路支线 */?),又称邱马高速公路(韩语:구마고속도로),是连接韩国大邱广域市达城郡和北区的一条高速公路,长30公里。1977年长86.4公里的路段通车(内西JCT-琴湖JCT),2001年内西至玄风段被划入中部内陆高速公路。