- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
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 Dickey dickey@和 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)的应用程序。窗口可以
您可能关注的文档
- Makefile基础知识(2)分析和总结.docx
- Makefile基础知识(3)分析和总结.docx
- makefile自动化变量分析和总结.docx
- mama中文歌词分析和总结.docx
- Mannich反应分析和总结.docx
- mapgis和shp数据的相互转换.docx
- Mapgis切剖面讲解分析和总结.docx
- MAPGIS一些图形操作技巧.docx
- Maple内核分析和总结.docx
- marketing 岗位分析分析和总结.docx
- ND5型机车处理故障.docx
- NET 通用权限设计 CS后台管理,BS前台调用源码样例程序源码下载之角色权限.docx
- NetApp-FAS系列安装配置说明.docx
- Netfilter框架 完全解析.docx
- Netscaler做负载均衡器跟踪到源IP配置方法(NSIP,VIP,Maped IP,Subnet IP).docx
- NET给图片添加水印的方法代码.docx
- NET中统一的存储过程调用方法.docx
- New Silk Road in Pakistani perspective分析和总结最新分析和总结.docx
- NewBizWinChecklistRevised分析和总结最新分析和总结.docx
- New-Magic-Book-2A-Unit5-Assessment(答案)分析和总结.docx
文档评论(0)