红联Linux门户
Linux帮助

在Linux对终端的几个操作

发布时间:2008-01-23 01:38:26来源:红联作者:Nzocrlma
当然,如果使用一些现有的库(比如 ncurses),本文就没什么信息量了,现在假设我们要自己造轮子。

1. 获取终端的宽度和高度:
#include
struct winsize sz;
ioctl (1, TIOCGWINSZ, &sz);
printf ("Width=%d\n, Height=%d\n", (int)sz.ws_col, (int)sz.ws_row);

ioctl 的第一个参数 1 是要获得的终端的文件描述符(文件号),如果它指向的文件是终端以外的东西,ioctl 函数会失败。

2. 显示/隐藏光标(这里看到的):用两个转义序列
"\033[?25l": 隐藏光标(最后面的是字母 l 不是数字 1)
"\033[?25h": 显示光标

3. 终端下的鼠标支持
xterm 兼容的终端支持鼠标操作,默认情况下关闭,用控制序列 "\033[?1000h" 开启,用 "\033[?1000l" 关闭。

在启动鼠标报告模式以后,鼠标对终端有动作时(按下/释放鼠标键,滚动滚轮)时,从这个终端就可以读到六个字节的转义序列 [ M b x y。从 b 是可以得知现在的事件(按下/释放哪个鼠标键,滚轮向哪个方向滚动等),从 (x, y) 可以当前鼠标的位置。详情参见 "man console_codes"(页面搜索 mouse)
文章评论

共有 0 条评论