<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=Ncurses</id>
	<title>Ncurses - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=Ncurses"/>
	<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=Ncurses&amp;action=history"/>
	<updated>2026-07-13T09:58:35Z</updated>
	<subtitle>在这个wiki上该页的修订历史</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://arolstar52-zhtest.hf.space/index.php?title=Ncurses&amp;diff=2129151&amp;oldid=prev</id>
		<title>imported&gt;S8321414 来自 2021年11月9日 (二) 11:46</title>
		<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=Ncurses&amp;diff=2129151&amp;oldid=prev"/>
		<updated>2021-11-09T11:46:17Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{cleanup-jargon|time=2013-10-16T12:20:10+00:00}}&lt;br /&gt;
{{refimprove|time=2013-10-16T12:20:10+00:00}}&lt;br /&gt;
{{NoteTA&lt;br /&gt;
 |1  = zh-cn:库;zh-tw:函式庫;&lt;br /&gt;
 |2  = zh-cn:编程;zh-tw:程式;&lt;br /&gt;
 |3  = zh-cn:克隆;zh-tw:複製品;&lt;br /&gt;
 |G1 = IT&lt;br /&gt;
 |G2 = FL&lt;br /&gt;
}}&lt;br /&gt;
{{lowercase}}&lt;br /&gt;
{{Infobox software&lt;br /&gt;
| name                   = ncurses&lt;br /&gt;
| screenshot             = Linux-menuconfig.png&lt;br /&gt;
| screenshot size        = 300px&lt;br /&gt;
| caption                = 基于ncurses的{{le|menuconfig|Menuconfig}}&lt;br /&gt;
| developer              = [[GNU计划]]&lt;br /&gt;
| latest release version = 6.3&lt;br /&gt;
| latest release date    = {{Release date and age|2021|11|08|df=yes}}&lt;br /&gt;
| operating system       = [[POSIX]]&lt;br /&gt;
| genre                  = [[部件工具箱]]&lt;br /&gt;
| license                = [[MIT許可證|X11授權條款]]&lt;br /&gt;
| website                = {{URL|https://invisible-island.net/ncurses/}}&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;#039;&amp;#039;&amp;#039;ncurses&amp;#039;&amp;#039;&amp;#039;&amp;lt;/tt&amp;gt;（&amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039;ew &amp;#039;&amp;#039;&amp;#039;curses&amp;#039;&amp;#039;&amp;#039;）是一个[[库 (计算机)|程序库]]，它提供了[[应用程序接口|API]]，可以允许程序员编写独立于终端的{{le|基于文本的用户界面|Text-based_user_interface}}。它是一个[[虚拟终端]]中的“类[[图形用户界面|GUI]]”[[应用软件]]工具箱。它还优化了屏幕刷新方法，以减少使用远程[[Unix shell|shell]]时遇到的[[延迟 (工程学)|延迟]]。&lt;br /&gt;
&lt;br /&gt;
== 历史 ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039;curses中的&amp;#039;&amp;#039;n&amp;#039;&amp;#039;来源于单词&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039;ew&amp;#039;&amp;#039;。这是因为ncurses是System V第4.0版（SVr4）中&amp;lt;tt&amp;gt;[[curses (库)|curses]]&amp;lt;/tt&amp;gt;的[[自由软件]]克隆, 而那又是停止开发的4.4 BSD curses的增强版。&amp;lt;ref name=&amp;quot;ncurses Raymond&amp;quot;/&amp;gt;System V严格遵守了[[X/Open]]发布的XSI Curses标准。&lt;br /&gt;
&lt;br /&gt;
=== curses ===&lt;br /&gt;
{{main|Curses (库)}}&lt;br /&gt;
&lt;br /&gt;
1980年左右，加州大学伯克利分校为[[BSD]]操作系统开发了最初的curses库，以支持面向屏幕的游戏。它最初使用了[[termcap]]库，其他程序，如[[vi]]编辑器中也使用了这个库。&amp;lt;ref name=&amp;quot;ncurses Raymond&amp;quot;&amp;gt;{{Cite web&lt;br /&gt;
    |url=http://www.linuxjournal.com/article/1124&lt;br /&gt;
    |title=ncurses: Portable Screen-Handling for Linux&lt;br /&gt;
    |author=Eric S. Raymond&lt;br /&gt;
    |publisher=Linux Journal&lt;br /&gt;
    |date=September 1995&lt;br /&gt;
    |accessdate=2013-05-10&lt;br /&gt;
    |archive-date=2012-02-26&lt;br /&gt;
    |archive-url=https://www.webcitation.org/65jfnrFoU?url=http://www.linuxjournal.com/article/1124&lt;br /&gt;
    |dead-url=no&lt;br /&gt;
    }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
BSD curses库的成功促使贝尔实验室在他们的System III和System V第1版[[Unix]]系统中，发布增强的curses库。这个库功能更强大，而且它用[[terminfo]]代替了termcap。然而，由于[[美国电话电报公司|AT&amp;amp;T]]的源代码分发政策，改进的curses库并没有被BSD社区广泛接受。&amp;lt;ref name=&amp;quot;ncurses Raymond&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== pcurses ===&lt;br /&gt;
约1982年时，帕维尔·柯蒂斯（Pavel Curtis）开发了贝尔实验室curses的[[免费软件]]克隆，名为&amp;#039;&amp;#039;&amp;#039;pcurses&amp;#039;&amp;#039;&amp;#039;。它由其他人维护到了1986年。&amp;lt;ref name=&amp;quot;ncurses Dickey&amp;quot;&amp;gt;{{Cite web&lt;br /&gt;
    |url=http://invisible-island.net/ncurses/&lt;br /&gt;
    |title=NCURSES - New Curses&lt;br /&gt;
    |author=Thomas E. Dickey&lt;br /&gt;
    |date=December 1996&lt;br /&gt;
    |accessdate=2013-05-10&lt;br /&gt;
    |archive-date=2019-05-08&lt;br /&gt;
    |archive-url=https://web.archive.org/web/20190508185622/https://invisible-island.net/ncurses/&lt;br /&gt;
    |dead-url=no&lt;br /&gt;
    }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== ncurses ===&lt;br /&gt;
1991年年底时，在Zeyd Ben-Halim的努力下，pcurses库得到了进一步改善。&amp;lt;ref name=&amp;quot;ncurses Raymond&amp;quot;/&amp;gt;&amp;lt;ref name=&amp;quot;ncurses Dickey&amp;quot;/&amp;gt;&amp;lt;ref&amp;gt;The [[README]] file in ncurses 1.8.1 states &amp;quot;v0.1 July 31, 1992&amp;quot; and &amp;quot;v1.8.1 November 5, 1993&amp;quot;, which agrees with the [http://invisible-island.net/ncurses/NEWS.gz NEWS (changelog) file] {{Wayback|url=http://invisible-island.net/ncurses/NEWS.gz |date=20170613025220 }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
1993年11月，新库以名字&amp;#039;&amp;#039;&amp;#039;ncurses&amp;#039;&amp;#039;&amp;#039;发布了，它的首个主版本为1.8.1。&lt;br /&gt;
随后版本1.8.8（1995）的工作由[[埃里克·雷蒙]]主导，他添加了Juergen Pfeifer编写的表单和菜单库。&amp;lt;ref&amp;gt;{{Cite web |url=http://invisible-island.net/ncurses/ncurses.faq.html#who_did_it |title=NCURSES - Frequently Asked Questions (FAQ): Who wrote NCURSES? |accessdate=2013-05-10 |archive-date=2018-08-21 |archive-url=https://web.archive.org/web/20180821220741/http://invisible-island.net/ncurses/ncurses.faq.html#who_did_it |dead-url=yes }}&amp;lt;/ref&amp;gt;1996年起，它一直由[[Thomas Dickey|Thomas E. Dickey]]维护。&amp;lt;ref name=&amp;quot;ncurses Dickey&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
大多数ncurses调用可以很方便地移植到旧的curses上。只需[[编译器|重新编译]]，System V的curses实现就可以支持BSD的curses程序。&amp;lt;ref&amp;gt;{{Cite web |url=http://invisible-island.net/ncurses/hackguide.html#abstract |title=A Hacker&amp;#039;s Guide to Ncurses Internals |accessdate=2013-05-10 |archive-date=2018-03-21 |archive-url=https://web.archive.org/web/20180321230408/http://invisible-island.net/ncurses/hackguide.html#abstract |dead-url=no }}&amp;lt;/ref&amp;gt;然而，一些地方却存在问题，如在处理终端缩放上，因为旧的curses没有对应的功能。&lt;br /&gt;
&lt;br /&gt;
== 终端数据库 ==&lt;br /&gt;
Ncurses可以使用[[terminfo]]（与可扩展数据）或[[termcap]]。其它[[Curses (库)|curses]]的实现一般使用terminfo；少数使用termcap。有极少数实现（mytinfo是一个时间较久的例外&amp;lt;ref&amp;gt;{{Cite web&lt;br /&gt;
 |url         = http://www.isc.org/index.pl?/sources/utils/terminal/mytinfo.php&lt;br /&gt;
 |author      = Ross Ridge&lt;br /&gt;
 |title       = &amp;#039;&amp;#039;&amp;#039;mytinfo&amp;#039;&amp;#039;&amp;#039; posting to &amp;#039;&amp;#039;&amp;#039;comp.sources.unix&amp;#039;&amp;#039;&amp;#039; newsgroup&lt;br /&gt;
 |publisher   = Internet Systems Consortium, Inc&lt;br /&gt;
 |date        = December 27, 1992&lt;br /&gt;
 |deadurl     = yes&lt;br /&gt;
 |archiveurl  = https://web.archive.org/web/20110516153514/http://www.isc.org/index.pl?%2Fsources%2Futils%2Fterminal%2Fmytinfo.php&lt;br /&gt;
 |archivedate = 2011年5月16日&lt;br /&gt;
 |accessdate  = 2017年11月12日&lt;br /&gt;
}}&amp;lt;/ref&amp;gt;）都可以使用。&lt;br /&gt;
&lt;br /&gt;
== 许可 ==&lt;br /&gt;
Ncurses是[[GNU计划]]的一部分。&lt;br /&gt;
它是极少数不在[[GNU通用公共许可证|GNU GPL]]或[[GNU宽通用公共许可证|LGPL]]下分发的GNU文件；它是在一个类似于[[MIT许可证]]的[[宽自由软件许可证]]下分发的。&amp;lt;ref name=&amp;quot;Is it GPL&amp;quot;&amp;gt;{{Cite web |url=http://invisible-island.net/ncurses/ncurses.faq.html#is_it_gpl |title=NCURSES - Frequently Asked Questions (FAQ): Is it GPL&amp;#039;d? |accessdate=2013-05-10 |archive-date=2018-08-21 |archive-url=https://web.archive.org/web/20180821220741/http://invisible-island.net/ncurses/ncurses.faq.html#is_it_gpl |dead-url=yes }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
这是由于在开发者指定版权时，协议是由[[自由软件基金会]]起草的。&lt;br /&gt;
&lt;br /&gt;
在签署协议以将权利交给FSF时，有条款写道：&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
The Foundation promises that all distribution of the Package, or of any work &amp;quot;based on the Package&amp;quot;, 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.&amp;lt;ref name=&amp;quot;Is it GPL&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
本基金会承诺，在本基金会、或其控制的代理人或受让人中，所分发的任何本软件包，或“基于本软件包”的任何作品，应在条款中明确，永久允许任何人拥有一份适用此条款的作品副本，且在条款中明确声明，以相同条款重分发此作品。&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
据维护者Thomas E. Dickey说，这排除了以任何版本的GPL重授权程序，因为它会对链接到这个库的程序产生限制。&amp;lt;ref name=&amp;quot;Is it GPL&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 使用ncurses的程序 ==&lt;br /&gt;
有成百的程序使用ncurses。&amp;lt;ref&amp;gt;{{Cite web&lt;br /&gt;
 |url         = http://freshmeat.net/search/?q=ncurses&amp;amp;section=projects&amp;amp;Go.x=0&amp;amp;Go.y=0&lt;br /&gt;
 |title       = Search results: +ncurses&lt;br /&gt;
 |publisher   = freshmeat.net&lt;br /&gt;
 |deadurl     = yes&lt;br /&gt;
 |archiveurl  = https://web.archive.org/web/20120218074708/http://freshmeat.net/search/?q=ncurses&amp;amp;section=projects&amp;amp;Go.x=0&amp;amp;Go.y=0&lt;br /&gt;
 |archivedate = 2012-02-18&lt;br /&gt;
 |accessdate  = 2013-05-10&lt;br /&gt;
}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Cite web&lt;br /&gt;
   |url=http://www.ohloh.net/tags/ncurses&lt;br /&gt;
   |title=Projects tagged ‘ncurses’&lt;br /&gt;
   |publisher=ohloh&lt;br /&gt;
   |accessdate=2013-05-10&lt;br /&gt;
   |archive-date=2013-05-15&lt;br /&gt;
   |archive-url=https://web.archive.org/web/20130515124809/http://www.ohloh.net/tags/ncurses&lt;br /&gt;
   |dead-url=yes&lt;br /&gt;
   }}&amp;lt;/ref&amp;gt;一些程序，如[[GNU Screen]]和[[w3m]]，只使用termcap接口执行屏幕管理。另一些，如[[Midnight Commander|GNU Midnight Commander]]和[[YaST]]，使用curses编程接口。&lt;br /&gt;
&lt;br /&gt;
== 参见 ==&lt;br /&gt;
{{Portal|自由软件}}&lt;br /&gt;
&lt;br /&gt;
* [[SMG$]]。[[OpenVMS]]中可用的屏幕管理[[应用程序接口|库]]。&lt;br /&gt;
* [[conio.h|conio]]。一个C头文件，用于在MS-DOS编译器中创建文本用户界面。&lt;br /&gt;
* [[Curses Development Kit]]&lt;br /&gt;
* [[Dialog (软件)]]&lt;br /&gt;
&lt;br /&gt;
== 参考资料 ==&lt;br /&gt;
{{Reflist}}&lt;br /&gt;
&lt;br /&gt;
== 外部链接 ==&lt;br /&gt;
&amp;lt;!-- This list is excessive. It needs to be simplified or included in the article --&amp;gt;&lt;br /&gt;
* {{Official website|http://www.gnu.org/software/ncurses/ncurses.html}}&lt;br /&gt;
* [http://invisible-island.net/ncurses/ncurses.faq.html NCURSES — Frequently Asked Questions (FAQ)]{{Wayback|url=http://invisible-island.net/ncurses/ncurses.faq.html |date=20180821220741 }}，Thomas Dickey&lt;br /&gt;
&lt;br /&gt;
=== 编程介绍 ===&lt;br /&gt;
* “[http://invisible-island.net/ncurses/ncurses-intro.html Writing Programs with NCURSES]{{Wayback|url=http://invisible-island.net/ncurses/ncurses-intro.html |date=20130425070129 }}”，[[埃里克·雷蒙]]和[[Zeyd M. Ben-Halim]]&lt;br /&gt;
* [http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/ ncurses Programming HOWTO]{{Wayback|url=http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/ |date=20130501101147 }}（[http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/pdf/NCURSES-Programming-HOWTO.pdf PDF版本]{{Wayback|url=http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/pdf/NCURSES-Programming-HOWTO.pdf |date=20130513004829 }}）&lt;br /&gt;
* [https://web.archive.org/web/20130605233520/http://writeka.com/ed/ncurses_library.html ncurses Beginner&amp;#039;s Tutorial]&lt;br /&gt;
* [http://invisible-island.net/ncurses/hackguide.html A Hacker&amp;#039;s Guide to NCURSES]{{Wayback|url=http://invisible-island.net/ncurses/hackguide.html |date=20180321230408 }}&lt;br /&gt;
&lt;br /&gt;
=== 工具箱 ===&lt;br /&gt;
* [http://ndk-xx.sourceforge.net/ NDK++]{{Wayback|url=http://ndk-xx.sourceforge.net/ |date=20130327025851 }} C++开发工具包&lt;br /&gt;
&lt;br /&gt;
=== 语言绑定 ===&lt;br /&gt;
* [http://invisible-island.net/ncurses/Ada95.html &amp;#039;&amp;#039;&amp;#039;Ada95&amp;#039;&amp;#039;&amp;#039;绑定]{{Wayback|url=http://invisible-island.net/ncurses/Ada95.html |date=20130303080109 }}&lt;br /&gt;
* [[:sourceforge:projects/curses-sharp/|&amp;#039;&amp;#039;&amp;#039;C#&amp;#039;&amp;#039;&amp;#039;绑定]]&lt;br /&gt;
* [http://common-lisp.net/project/cl-ncurses/ ANSI &amp;#039;&amp;#039;&amp;#039;Common Lisp&amp;#039;&amp;#039;&amp;#039;绑定]{{Wayback|url=http://common-lisp.net/project/cl-ncurses/ |date=20130122085726 }}&lt;br /&gt;
* [https://web.archive.org/web/20130313160546/http://www.freepascal.org/packages/ncurses.html &amp;#039;&amp;#039;&amp;#039;Free Pascal&amp;#039;&amp;#039;&amp;#039;绑定]&lt;br /&gt;
* [https://web.archive.org/web/20121226064552/http://logik.li/projects/gocurses &amp;#039;&amp;#039;&amp;#039;Go&amp;#039;&amp;#039;&amp;#039;绑定]&lt;br /&gt;
* [http://www.gnu.org/software/guile-ncurses/ GNU &amp;#039;&amp;#039;&amp;#039;Guile&amp;#039;&amp;#039;&amp;#039;绑定]{{Wayback|url=http://www.gnu.org/software/guile-ncurses/ |date=20130510113031 }}&lt;br /&gt;
* [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/hscurses/ &amp;#039;&amp;#039;&amp;#039;Haskell&amp;#039;&amp;#039;&amp;#039;绑定]{{Wayback|url=http://hackage.haskell.org/cgi-bin/hackage-scripts/package/hscurses/ |date=20120212082858 }}&lt;br /&gt;
* [[:sourceforge:projects/javacurses/|&amp;#039;&amp;#039;&amp;#039;Java&amp;#039;&amp;#039;&amp;#039;绑定]]&lt;br /&gt;
* [http://SpiderApe.sourceforge.net/plugins/ncurses/ &amp;#039;&amp;#039;&amp;#039;JavaScript&amp;#039;&amp;#039;&amp;#039;绑定]{{Wayback|url=http://spiderape.sourceforge.net/plugins/ncurses/ |date=20200804105810 }}&lt;br /&gt;
* [http://www.t2-project.org/packages/lua-curses.html &amp;#039;&amp;#039;&amp;#039;Lua&amp;#039;&amp;#039;&amp;#039;绑定]{{Wayback|url=http://www.t2-project.org/packages/lua-curses.html |date=20130521050936 }}&lt;br /&gt;
* [http://github.com/mscdex/node-ncurses/ &amp;#039;&amp;#039;&amp;#039;Node.js&amp;#039;&amp;#039;&amp;#039;绑定]{{Wayback|url=http://github.com/mscdex/node-ncurses/ |date=20140802143108 }}&lt;br /&gt;
* [http://search.cpan.org/~giraffed/Curses-1.28/ &amp;#039;&amp;#039;&amp;#039;Perl&amp;#039;&amp;#039;&amp;#039;绑定]{{Wayback|url=http://search.cpan.org/~giraffed/Curses-1.28/ |date=20130301050440 }}&lt;br /&gt;
* [http://www.php.net/manual/en/ref.ncurses.php &amp;#039;&amp;#039;&amp;#039;PHP&amp;#039;&amp;#039;&amp;#039;终端屏幕控制功能]{{Wayback|url=http://www.php.net/manual/en/ref.ncurses.php |date=20130424130722 }}&lt;br /&gt;
** [https://web.archive.org/web/20130803010851/http://devzone.zend.com/173/using-ncurses-in-php/ 在PHP中使用Ncurses]&lt;br /&gt;
* [https://web.archive.org/web/20080914134336/http://docs.python.org/lib/module-curses.html &amp;#039;&amp;#039;&amp;#039;Python&amp;#039;&amp;#039;&amp;#039;绑定]&lt;br /&gt;
* [https://web.archive.org/web/20121014012701/http://ncurses-ruby.berlios.de/ &amp;#039;&amp;#039;&amp;#039;Ruby&amp;#039;&amp;#039;&amp;#039;模块]&lt;br /&gt;
&lt;br /&gt;
=== 分发和-{zh-hans:包;zh-hant:封裝}- ===&lt;br /&gt;
* [http://gnuwin32.sourceforge.net/packages/ncurses.htm Ncurses package for Windows]{{Wayback|url=http://gnuwin32.sourceforge.net/packages/ncurses.htm |date=20130309045725 }} – [[GnuWin32]]&lt;br /&gt;
&lt;br /&gt;
[[Category:GNU计划软件]]&lt;br /&gt;
[[Category:Ncurses| ]]&lt;br /&gt;
[[Category:使用MIT许可证的软件]]&lt;br /&gt;
[[Category:用C編程的自由軟體]]&lt;br /&gt;
[[Category:C函式庫]]&lt;/div&gt;</summary>
		<author><name>imported&gt;S8321414</name></author>
	</entry>
</feed>