⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ch1.htm

📁 ncurses中文说明
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<html>
<head>
<title>第一章:NCURSES库简介</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="keywords" content="NCURSES,NCURSES库简介">
</head>

<body leftmargin=40 bgcolor="#DAFFFF" text="black" link="#0000ff" alink="blue" vlink="#940084">
<br>
<br>
<div align="left">

  <div align="center"><a href="index.htm"><font size="5">
    <strong>
    回  目  录
    </strong>
  </font></a></div>
  <div align="right"><font size="5"><a href="ch2.htm">
    <strong>
    下 一 章
	</strong>
	</a></font></div>
  <br>
  <br>
  <br>
  <font size="4">
  <h1 align="center">
    第一章:NCURSES库简介
  </h1>
 
  <br>
  <br> 
</font>
<h3 align="left"><font size="4"><a name="#intro">
1.1 介绍(Introduction)
</a>
</font></h3>
<font size="4"><p>
<dd>
在广泛使用电传打字机的那个年代,电传打字机作为输出终端,通过电缆和中央电脑连接。用户要向终端程序发送一系列特定的控制命令,才可以控制终端屏幕的输出。</dd>
</p>
<p>
<dd>
比如要在改变光标在屏幕上的位置,清除屏幕某一区域的内容,卷动屏幕,切换显示模式,给文字添加下划线,改变字符的外观、颜色、亮度等等。这些控制都是通过一种叫做转义序列(escape sequence)的字符串实现的。叫做转义序列是因为这些连续字节都是以一个“0x1B”字符,即转义字符(按下ESC键所输入的字符)作为开头的字符串。即使在现在,我们也可以通过向终端仿真程序输入转义序列得到与当年电传打字终端同样的输出效果。
</dd>
</p>
<p>
<dd>
如果你想在终端(或者终端仿真程序)屏幕输出一段背景是彩色的文字,可以将以下这段转义序列输入到你的命令行提示符:</dd>
</p>
<font color="Maroon">
<dd>
echo "^[[0;31;40mIn Color"
</dd>
</font>
<p>
在这里 “^” 和 “[” 就是所谓的转义字符。(注意:在这里 “^[” 是一个字符。不是依次键入“^”和“[”字符。要打印出这个字符,你必须先按下Ctrl+V,然后按下ESC键。)执行以上的命令后。你应该可以看见“In Color”的背景变为红色了。从此以后显示的文本信息都是以这样的效果输出的。
</p>
<p>
<dd>
如果想终止这种效果并回到原来的方式可以使用以下的命令:
</dd>
</p>
<font color="Maroon">
<dd>
echo "^[[0;37;40m"
</dd>
</font>
<p>
现在知道这些字符(转移序列)的作用了吗?(译者注:更改分号之间的参数,看看会有什么结果。)也许会和自己想像的不一样?可能是因为终端环境不同,终端环境取决于终端或操作系统的不同。(你不可能让一个黑白终端显示出彩色字符吧?)
</p>
<br>
<h3 align="left">
<a name="#what">1.2 NCURSES是什么?
</a>
</h3>
<p>
<dd>
你可能被以上的术语搅和的晕头转向了。假设在使用terminfo的情况下,让所有的应用程序访问terminfo数据库控制输出(比如发送控制字符,等等……)。不久这些调用代码将会使整个程序变得难以控制和管理。这些问题的出现导致了CURSES的诞生。CURSES的命名是来自一个叫做 “cursor optimization”(光标最优化)的双关语。CURSES库通过对终端原始控制代码(转义序列)的封装,向用户提供了一个灵活高效的API(应用程序接口)。它提供了一套控制光标,建立窗口,改变前景背景颜色以及处理鼠标操作的函数。使用户在字符终端下编写应用程序时绕过了那些恼人的底层机制。
</dd>
</p>
<p>
<dd>
NCURSES是一个从System V Release 4.0 (SVr4) 中CURSES的克隆。这是一个可自由配置的库,完全兼容旧版本的CURSES。简而言之,他是一个可以使应用程序直接控制终端屏幕显示的库。当后面提到CURSES库的时候,同时也是NCURSES库。
</dd>
</p>
<p>
</font>
<dd><font size="4">
NCURSES包由Pavel Curtis发起,Zeyd Ben-Halim <<a href="mailto:zmbenhal@netcom.com">zmbenhal@netcom.com</a>>和Eric S. Raymond&lt; <a href="mailto:esr@snark.thyrsus.com">esr@snark.thyrsus.com</a>&gt; 是最初的维护人员,他们在1.8.1及以后版本中增加了很多的新功能。Jürgen Pfeifer <<a href="mailto:juergen.pfeifer@gmx.net">juergen.pfeifer@gmx.net </a>> 撰写了菜单库和面板库。使菜单和面板的机制和Ada95中捆绑的库一样好。Thomas Dickey <<a href="mailto:dickey@herndon4.his.com"> dickey@herndon4.his.com </a>> 和Jürgen Pfeifer进行着NCURSES的维护工作。Florian La Roche <<a href="mailto:florian@gnu.org"> florian@gnu.org </a>> 持有NCURSES的版权,他在自由软件基金会(GNU)中担任NCURSES的维护工作。如果要联系现在的NCURSES的维护者请发电子邮件至 <<a href="mailto:bug-ncurses@gnu.org"> bug-ncurses@gnu.org </a>> 。
</font></dd>
<font size="4"></p>
<br>
<h3 align="left">
<a name="#do">
1.3 NCURSES可以做什么?
</a>
</h3>
<p>
<dd>
NCURSES不仅仅只是封装了底层的终端功能,而且提供了一个相当稳固的工作框架(Framework)用以产生漂亮的界面。它包含了一些创建窗口的函数。而它的姊妹库 Menu、Panel和Form则是对CURSES基础库的扩展。这些库一般都随同CURSES一起发行。我们可以建立一个同时包含多窗口(multiple windows)、菜单(menus)、面板(panels)和表单(forms)的应用程序。窗口可以被独立管理,例如让它卷动(scrollability)或者隐藏。
</dd>
</p>
<p>
<dd>
菜单(Menus)可以让用户建立命令选项,从而方便执行命令。而窗体(Forms)允许用户建立一些简单的数据输入和显示的窗口。面板(Panels)是NCURSES窗口管理功能的扩展,可以用它覆盖或堆积窗口。
</dd>
</p>
<p>
<dd>
以上这些就是NCURSES的一些基本介绍。在以后的章节里,我们将详细的介绍NCURSES库。
</dd>
</p>
<br>
<h3 align="left">
<a name="#get">
1.4 在哪能得到它
</a>
</h3>
<p>
<dd>
你现在应该知道NCURSES可以做什么了。在你使用之前必须先下载它。你在安装操作系统时(Linux)应该已经附带了。万一如果你的操作系统还没有安装NCURSES库,可以通过以下的途径可以下载得到:
</dd>
</p>
</font>
  <p><font size="4">
下载并编译安装文件包:
你可以通过 <a href="ftp://ftp.gnu.org/pub/gnu/ncurses/ncurses.tar.gz">ftp://ftp.gnu.org/pub/gnu/ncurses/ncurses.tar.gz</a> 免费下载NCURSES。也可以通过GNU的FTP目录:<a href="http://www.gnu.org/order/ftp.html">http://www.gnu.org/order/ftp.html</a>  找到提供免费下载NCURSES文件包的站点。最新发布的稳定版本为:5.2 20001021.(译者翻译时已经有5.4版本的NCURSES下载了)
</font></p>
  <font size="4"><p>
<dd>
包裹文件中的README和INSTALL文件是安装NCURSES库的最主要资料。通常是这样安装NCURSES的:
</dd>
</p>
<font color="Maroon">
<table width="680">

<tr>
<td width="340" height="30">tar zxvf  ncurses<version>.tar.gz
</td>
<td width="340">
#解压缩并且释放文件包
</td>
</tr>
<tr>
<td width="340" height="30">
cd ncurses<version>
</td>
<td>
#进入解压缩的目录(注意版本)
</td>
</tr>
<tr>
<td width="340" height="30">
./configure
</td>
<td width="340" height="30">
#按照你的系统环境制作安装配置文件
</td>
</tr>
<tr>
<td width="340" height="30">
make
</td>
<td width="340" height="30">
#编译源代码并且编译NCURSES库
</td>
</tr>
<tr>
<td width="340" height="30">
su root
</td>
<td width="340" height="30">
#切换到root用户环境
</td>
</tr>
<tr>
<td width="340" height="30">
make install
</td>
<td width="340" height="30">
#安装编译好的NCURSES库
</td>
</tr>
</table>
</font>
<p>
使用RPM安装文件:
</p>
</font><p><font size="4">
可以在 <a href="http://rpmfind.net">http://rpmfind.net</a> 找到NCURSES的RPM格式安装包。可以在root模式下使用以下的命令安装:(以5.2版本为例)
</font></p>
<font size="4"><font color="Maroon">
rpm –vih 下载的RPM文件
</font>
<h3 align="left">
<a name="#purpose">
1.5 本文档的写作意图和涵盖范围
</a>
</h3>
<p>
<dd>
这份文档是一份完整描述NCURSES库以及其姊妹库(sister libraries)的编程参考。在这份文档中我们将以一个用NCURSES库编写的“Hello, World!”程序作为起点。循序渐进的讲解NCURSES库中更多更复杂的操作。所以在撰写这份文档的时候假定读者不了解NCURSES库。
</dd>
</p>
<br>
<h3 align="left">
<a name="#program">
1.6 关于文档中出现的程序
</a>
</h3>
<p>
<dd>
这份文档中用到的所有程序已经被压缩成一个tar.gz的文件(需要相关软件解压缩)。可以通过 <a href="http://www.linuxdoc.org/HOWTO/NCURSES-Programming-HOWTO/ncurses_programs.tar.gz">http://www.linuxdoc.org/HOWTO/NCURSES-Programming-HOWTO/ncurses_programs.tar.gz</a> 下载到。以下是这个压缩包解压缩后的目录结构:
</dd>
</p>
<font color="Maroon">
<p>
ncurses
</p>
<pre>
|

|---->JustForFun				-- just for fun 部分的程序	

|---->basics				-- 一些基础部分的程序

|---->demo					-- make 之后的程序

|	|

|	|---->exe				-- 一些已编译的可执行示例程序

|---->forms					-- 和form 库相关的程序

|---->menus					-- 和menus 库相关的程序

|---->panels				-- 和 panels 库相关的程序

|---->Makefile				-- 一级目录的下的 Makefile

|---->README				-- 一级目录下的 README 文件包含程序说明

|---->COPYING				-- 程序版权信息文档

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -