当前位置: 技术问答>linux和unix
用c如何实现程序中类似bash的命令行记忆和tab补全?
来源: 互联网 发布时间:2015-12-29
本文导语: 当程序中出现提示符时,如何按上下箭头显示以前敲的命令? 还有tab补全如何实现? 请各位说说思路。 | 你要用到终端编程,设置终端输入模式为非标准模式,这样不需要按回车.使用read从0读...
当程序中出现提示符时,如何按上下箭头显示以前敲的命令?
还有tab补全如何实现?
请各位说说思路。
还有tab补全如何实现?
请各位说说思路。
|
你要用到终端编程,设置终端输入模式为非标准模式,这样不需要按回车.使用read从0读取输入.按下标准ASCII码以外的键时,读取到的字节数大于1,这可以用来判断是普通键(A-Z, 0-9, 常用标点)还是特殊键(Delete, Backspace, 方向键)等.
char KEY_UP[] = {27, 91, 65, 0};
char KEY_DOWN[] = {27, 91, 66, 0};
char KEY_RIGHT[] = {27, 91, 67, 0};
char KEY_LEFT[] = {27, 91, 68, 0};
这是VT100模式下方向键定义,要注意,一些远程登陆工具会改变backspace, delete等功能键的发送字符内容.
char KEY_UP[] = {27, 91, 65, 0};
char KEY_DOWN[] = {27, 91, 66, 0};
char KEY_RIGHT[] = {27, 91, 67, 0};
char KEY_LEFT[] = {27, 91, 68, 0};
这是VT100模式下方向键定义,要注意,一些远程登陆工具会改变backspace, delete等功能键的发送字符内容.