NCURSES库及其简单使用方法.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
NCURSES库及其简单使用方法

NCURSES库及其简单使用方法 1、介绍 在那个广泛使用电传打字机的年代,电传打字机作为中央电脑的输出终端,通过电缆和中央电脑连接。用户要向终端程序发送一系列特定的控制命令,才可以控制终端屏幕的输出。比如要在改变光标在屏幕上的位置,清除屏幕某一区域的内容,卷动屏幕,切换显示模式,给文字添加下划线,改变字符的外观、颜色、亮度等等。这些控制都是通过一种叫做转义序列(escape sequence)的字符串实现的。被叫做转义序列是因为这些连续字节都是以一个0x1B字符,即转义字符(按下ESC键所输入的字符)作为字符串的开头。即使在现在,我们也可以通过向终端仿真程序输入转义序列得到与当年电传打字终端同样的输出效果。 如果你想在终端(或者终端仿真程序)屏幕输出一段背景是彩色的文字,可以将以下这段转义序列输入到你的命令行提示符: echo ^[[0;31;40mIn Color 在这里 ^[ 就是所谓的转义字符。(注意:在这里 ^[ 是一个字符。不是依次键入^和[字符。要打印出这个字符,你必须先按下Ctrl+V,然后按下ESC键。)执行以上的命令后。你应该可以看见In Color的背景变为红色了。从此以后显示的文本信息都是以这样的方式输出的。 如果想终止这种方式并回到原来的显示方式可以使用以下的命令: echo ^[[0;37;40m 现在知道这些字符(转移序列)的作用了吗?(译者注:更改分号之间的参数,看看会有什么结果。)也许会和自己想像的不一样?可能是因为终端环境不同,终端环境取决于终端或操作系统的不同。(译者注:你不可能让一个黑白终端显示出彩色字符吧?) 为了避免这种不兼容情况,能够在不同的终端上输出统一的结果。UNIX的设计者发明了一种叫做 termcap的机制。termcap实际上是一个随同转义序列共同发布的文件。这个文件罗列出当前终端可以正确执行的所有转义序列,使转义序列的执行结果符合这个文件中的规定。但是,在这种机制发明后的几年中,一种叫做terminfo的机制逐渐取代termcap。从此用户在编程时不用翻阅繁琐的termcap中的转义序列规定,仅通过访问terminfo的数据库就可以控制屏幕的输出了。 2、NCURSES是什么? 你可能被以上的术语搅和的晕头转向了。假设在使用terminfo的情况下,让所有的应用程序访问terminfo数据库控制输出(比如发送控制字符同时卷动屏幕)。不久这些调用代码将会使整个程序变得难以控制和管理。这些问题的出现导致了CURSES的诞生。CURSES的命名是来自一个叫做 cursor optimization(光标最优化)的双关语。CURSES库通过对终端原始控制代码(转义序列)的封装,向用户提供了一个灵活高效的API(应用程序接口)。它提供了一套控制光标,建立窗口,改变前景背景颜色以及处理鼠标操作的函数。使用户在字符终端下编写应用程序时绕过了那些恼人的底层机制。 NCURSES是一个从System V Release 4.0 (SVr4) 中CURSES的克隆。这是一个可自由配置的库,完全兼容旧版本的CURSES。简而言之,他是一个可以使应用程序直接控制终端屏幕显示的库。当后面提到CURSES库的时候,同时也是指代NCURSES库。 NCURSES包由Pavel Curtis发起,Zeyd Ben-Halim zmbenhal@和Eric S. Raymond esr@是最初的维护人员,他们在1.8.1及以后版本中增加了很多的新功能。Jürgen Pfeifer juergen.pfeifer@ 撰写了菜单库和面板库。使菜单和面板机制同Ada95中捆绑的一样好。Thomas Dickeydickey@和Jürgen Pfeifer进行着NCURSES的维护工作。Florian La Roche florian@持有NCURSES的版权,他在自由软件基金会(GNU)中担任NCURSES的维护工作。如果要联系现在的NCURSES的维护者请发电子邮件至bug-ncurses@。 3、NCURSES可以做什么? NCURSES不仅仅只是封装了底层的终端功能,而且提供了一个相当稳固的工作框架(Framework)用以产生漂亮的界面。它包含了一些创建窗口的函数。而它的姊妹库 Menu、Panel和Form则是对CURSES基础库的扩展。这些库一般都随同CURSES一起发行。我们可以建立一个同时包含多窗口(multiple windows)、菜单(menus)、面板(panels)和表单(forms)的应用程序。窗口可以被独立管理,例如让它卷动(scrollability)或者隐藏。 ?菜单(Menus)可以让用户建立命令选项,从而方便执行命令。而窗体(Forms)允许用户建立一些简单的数据输入和显

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档