注:本人虽然学习计算机已经很多年了,但是一直没有写过技术文章,从今天开始,要把自己知道的做一些分享。
写作缘由:
为已经开发的系统提供一个命令操作界面以方便使用人员操作。
基本功能:
1、实现help、clear、dump、exit这些命令,这里仅作为示例;
2、简单的行文本编辑功能(光标的左右移动、backspace删除字符、上下方向键显示历史命令);
3、回车即完成一次命令的读取,然后解析命令、执行操作、再次回到命令接收状态;
原理:
很简单,只要有些计算机的编程功底,基本上都能想到实现的思路;
即依靠一个循环来接收命令、解析命令、执行操作、再次返回命令接收界面。
实现:
通过调研,发现curses.h基本上能够实现所有的窗口操作,因此本人暂时选择了curses.h,该头文件是libncurses5-dev包中带有的,本人的系统是centos5.5,系统自带相关的头文件和库文件,同时也尝试过在ubuntu11.04上安装,只要下载相应的安装包即可,下面就介绍本人的开发步骤:
1、数据结构
//行编辑器,用于shell命令行的输入,其实shell命令行就相当于一个行编辑器,目前本程序支持一行在512字符内的编辑操作
struct line_editor
{
char chars[512];//字符内容
int tail;//内容结尾游标
int cur;//当前光标前字符的游标