curses库的I/O接口.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
curses库的I/O接口.doc

curses库的I/O接口 …… EMBEDDEDSYSTE啊PROG札啊啊ING…………………………………………………………………………… 摘要主要分析Unix下的curses库的I/O开发接口的运用方法. 关键词Unix终端,可视化开发,curses库,I/O开发,字符界面,终端 目前金融,邮政,电信等行业大多采用基于Unix/Linux 系统的主机服务器,大部分应用软件基于Unix下的字符终端 环境.在终端环境下编写应用程序,屏幕处理程序是重点也是 难点,它直接处理与用户的交互,比如接受用户数据,输出窗 口,菜单等.对于Unix/Linux系统下的可视化开发可以使用 系统自带的curses包,curses包是为屏幕控制和操作提供的一 个简单的高层接口.对用户来说,它屏蔽了终端的多样性和复 杂性,使得用户不必再考虑各个终端的具体的底层细节,使用 clllses包可以较轻松地完成字符界面下的可视化开发工作. 一 ,CUrses库 最早的curses包是随SystemVRelease4.O(SVR4)Unix一 起发布的,目前已经比较成熟,并且为大多数开发人员使用. 使用curses包处理的时候,用户处理的实际上是一个逻辑终 端,基本层次结构如下图所示. 终端用户 千 { 每 I 髓终端拯述数据库l1E硒配^P终端描述数据库 l ?:33, 辑0#一tt0t?0豫 薯赞擅岗2童i誊一?—l终磕n curses包工作的基本层次结构图 终端用户通过curses库函数执行各种终端操作.在真正操 作终端之前,curses必须了解终端的性能,并用这些性能初始 化相关环境变量,比如有些终端最大行宽为80,而有些终端 却不是80.事实上大部分终端的详细地描述信息都保存在ter- minfo或者termcap文件中,通过读取这些描述信息,就可以了 解不同终端的具体性能.通过terminfo或者termcap,用户不必 再关心终端的细节,从而可以集中精力处理上层操作.读取 terminfo和termcap的操作都被封装在curses包中,因此使用 curses编写的程序能够运行在大部分的终端上面.通过curses 程序,可以非常方便地处理终端视频的输入和输出,在屏幕上 可以移动光标,打印显示,将终端屏幕切分成窗口或者更改一 些颜色属性,而且目前一些curses库提供了新的组件使得可以 非常方便地创建窗口,面板,菜单以及各种输入表单,这些组 件将极大地美化界面.下面将详细分析curses包的I/O开发方 法. 1.引入curses 在Unix系统中开发字符可视化界面,首先在程序中必须引 用curses库的头文件,语句如下: #includelt;curses.hgt; 由于curses使用标准I/0接口,因此这个库一旦被引用, 系统自动地斗每(stdio.hgt;和lt;unch.hgt;一起包含进来,如果是 SystemV系统,lt;terminfo.hgt;也会包含进来,另外还可能包括 lt;termios.hgt;,lt;termio.hgt;,lt;sgtty.hgt;,具体的由系统本身决 定.程序编写结束后使用下面的命令进行编译和链接,生成可 执行文件: ec【flags】file—leurses 一 1curses参数用来在链接的时候提示链接程序将curses库 链接进去. 2.常量定义 头文件curses.h中定义了四个整型常量,两个常量是大多 数的curses函数的返回结果,另外两个是布尔类型的值,一旦 包含了curses头文件,就可以在程序中直接使用它们.这四个 常量是是: OKcurses函数运行成功的返回值,系统定义为0 ERRcurses函数运行发生错误时候的返回值,系统定义 为一1 |-r毫 ~ —曩蠢蕊 20 巧 08 号 . 一 1 豢 j一Lf!±!±!^of…,tJ}目tE!自 实用第一智慧密集 …………………………………. TRUE布尔值,表示为真,系统定义为1 FALSE布尔值,表示为假,系统定义为0 3.标准屏幕与当前屏幕 如果程序中使用了curses库,那么在程序初始化的时候, 系统将自动产生两个默认屏幕,第一个即是标准屏幕,系统定 义为stdscr,它代表终端的整个屏幕区域.第二个就是当前屏 幕,系统定义为curscr.为了了解当前屏幕的概念,首先必须 对curses库的屏幕刷新机制有所了解. 通常终端的刷新频率都不是很高,因此频繁地刷新可能导 致显示速度非常的慢.因此curses库对终端屏幕刷新进行了一 些优化处理.在curses库中对标准屏幕的任何更新并不会立即 反映到屏幕上,而是必须等调用了函数refresh()或者wrefresh ()之后,改变的效果才会在屏幕上真正显示出来.当前屏幕就 是能够

文档评论(0)

cai + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档