termios介绍

文件描述符(fd)

内核(kernel)利用文件描述符(file descriptor)来访问文件。文件描述符是非负整数。打开现存文件或新建文件时,内核会返回一个文件描述符。读写文件也需要使用文件描述符来指定待读写的文件。

结构体 termios

typedef unsigned int    tcflag_t;
struct
termios { tcflag_t c_iflag; /* input mode flags */ tcflag_t c_oflag; /* output mode flags */ tcflag_t c_cflag; /* control mode flags */ tcflag_t c_lflag; /* local mode flags */ cc_t c_line; /* line discipline */ cc_t c_cc[NCCS]; /* control characters */ speed_t c_ispeed; /* input speed */ speed_t c_ospeed; /* output speed */ #define _HAVE_STRUCT_TERMIOS_C_ISPEED 1 #define _HAVE_STRUCT_TERMIOS_C_OSPEED 1 };

函数tcgetattr——获取终端相关参数

* Put the state of FD into *TERMIOS_P.  */
int tcgetattr (int __fd, struct termios *__termios_p) ;

tcgetattr函数用于获取与终端相关的参数。参数fd为终端的文件描述符,返回的结果保存在termios结构体中,该结构体一般包括如下的成员:

tcflag_t c_iflag;
tcflag_t c_oflag;
tcflag_t c_cflag;
tcflag_t c_lflag;
cc_t c_cc[NCCS];
 
函数tcsetattr——设置终端相关参数
/* Set the state of FD to *TERMIOS_P.
   Values for OPTIONAL_ACTIONS (TCSA*) are in <bits/termios.h>.  */
 int tcsetattr (int __fd, int __optional_actions, const struct termios *__termios_p) ;

 回显:就是你输入的东西能不能在终端显示出来,可以通过

stty -echo 关闭回显
stty echo打开回显

自己体验一下就知道了。

原文地址:https://www.cnblogs.com/qixianyu/p/6648339.html