test Blog
Happy living

在Linux对终端的几个操作

老鼠 posted @ 2009年3月11日 02:01 in linux , 2805 阅读
当然,如果使用一些现有的库(比如 ncurses),本文就没什么信息量了,现在假设我们要自己造轮子。

获取终端的宽度和高度:
#include <sys/ioctl.h>
struct winsize sz;程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛*E8G9K,C/X7_#k
ioctl (1, TIOCGWINSZ, &sz);3o$z6k7o9S5?
printf ("Width=%d\n, Height=%d\n", (int)sz.ws_col, (int)sz.ws_row);3w!m;f;H$f k8}
8h;~;D7b)Z8{9I%a
ioctl 的第一个参数 1 是要获得的终端的文件描述符(文件号),如果它指向的文件是终端以外的东西,ioctl 函数会失败。

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

3. 终端下的鼠标支持TechWeb-技术社区5p:L1`)k2l9|.m+a2t$[1k1W8r
xterm 兼容的终端支持鼠标操作,默认情况下关闭,用控制序列 "\033[?1000h" 开启,用 "\033[?1000l" 关闭。%n.V%T'| b-]2u2O2X

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

 


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter