Linux - curses函数库

curses库基本概念

控制字符输入/输出的格式
termios缺点,转义处理
curses优点
提供与终端无关的字符处理方式
可以管理键盘
支持多窗体管理

curses vs. ncurses
源文件包含头文件curses.h
编译时加 –lcurses选项
gcc program.c −o program −lcurses
gcc −I/usr/include/ncurses program.c −o program −lncurses
curses配置情况的检查
查看头文件:ls −l /usr/include/*curses.h
查看库文件:ls −l /usr/lib/*curses.*

cureses工作于屏幕、窗口和子窗口上
屏幕:正在写的设备,占据设备上的全部可用显示面积
窗口
curses窗口(称为stdscr):至少存在一个,与物理屏幕的尺寸相同
其他窗口:尺寸小于屏幕窗口,可以重叠
子窗口:必须包含在父窗口内

curses库的核心数据结构

stdscr
对应于“标准屏幕”,是curses程序的默认输出窗口
工作原理与stdio函数库中的stdout非常相似
在curses函数产生输出时被刷新
在调用refresh函数之前,输出到stdscr上的内容不会在屏幕上显示
curscr
对应当前屏幕外观
调用refresh函数时,curses函数库比较stdscr及curscr之间的不同之处,然后用两个数据结构之间的差异来刷新屏幕
curses程序需了解stdscr,但不需要使用curscr数据结构

curses程序中输出字符的过程

用curses函数刷新逻辑屏幕
用refresh函数刷新物理屏幕
逻辑屏幕
通过字符数组来实现
屏幕左上角—坐标(0, 0)为起点
坐标形式
y在前,表示行号
x在后,表示列号
每个位置包括该屏幕位置的字符及其属性

curses中的全局变量

WINDDW* curscr:当前屏幕  
WINDOW* stdscr:标准屏幕  
int LINES:终端上的行数  
int COLS:终端上的列数  
bool TRUE:真标志,1  
bool FALSE:假标志,0  
int ERR:错误标志,-1  
int OK:OK标志,0  

curses屏幕处理

函数定义
#include <curses.h>
WINDOW *initscr(void);
在一个程序中只能调用一次
判断终端类型和初始化Curses数据结构,同时也对终端进行一次刷新以清除屏幕,为以后的操作做准备 
成功时,返回一个指向stdscr结构的指针
失败时,返回一个诊断信息并使程序结束
函数定义
int endwin(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值