- 论坛徽章:
- 0
|
8.5获取和设置终端属性
设置和获取终端控制属性是通过tcgetattr和tcsetattr两个函数来完成的
tcgetattr函数
头文件:
#include
#include
函数原型:
int tcgetattr(int filedes, struct termios *termptr);
参数:
int filedes - 文件描述符
struct termiso *termptr - 指向termios结构的指针,
返回值:
如果成功返回0,否则返回-1
tcsetattr函数
头文件:
#include
#include
函数原型:
int tcsetattr(int filedes, int opt, const struct termios *termptr);
参数:
int filedes - 文件描述符
int opt - 选项值,可以为下面三个值之一
TCSANOW - 不等数据传输完毕就改变属性
TCSADRAIN - 等待所有数据传输结束才改变属性
TCSAFLUSH - 清空输入输出缓冲区并且是设置属性
const struct termios *termptr - 指向termios结构的指针,
返回值:
成功返回0,否则返回-1
九、常用设置
9.1设置规范模式
规范模式是面向行的输入方式,输入字符被放入用于和用户交互可以编辑的缓冲区内,直接到读入回车或者换行符号时才结束。
可以通过如下方式来设置
option.c_lflag |= (ICANON | ECHO | ECHOE);
9.2设置原始输入模式
原始输入模式是没有处理过的,当接收数据时,输入的字符在它们被接收后立即被传送,使用原始输入模式时候,一般可以选择取消ICANON,ECHO,ECHOE和ISIG选项。
例如:
option.c_lflag &= ~(ICANON | ECHO | ECHOE);
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/37319/showart_341584.html |
|