LINUX 使用tcgetattr函数与tcsetattr函数控制终端一
为了便于通过程序来获得和修改终端参数,Linux还提供了tcgetattr函数和tcsetattr函数。tcgetattr用于获取终端的相关参数,而tcsetattr函数用于设置终端参数。这两个函数的具体信息如表6.2所示。
表6.2 tcgetattr函数和tcsetattr函数
头文件 |
<termios.h> <unistd.h> |
||
函数形式 |
int tcgetattr(int fd, struct termios *termios_p); int tcsetattr(int fd, int optional_actions, const struct termios *termios_p); |
||
返回值 |
成功 |
失败 |
是否设置errno |
0 |
−1 |
是 |
说明:tcgetattr函数用于获取与终端相关的参数。参数fd为终端的文件描述符,返回的结果保存在termios结构体中,该结构体一般包括如下的成员:
tcflag_t c_iflag;
tcflag_t c_oflag;
tcflag_t c_cflag;
tcflag_t c_lflag;
cc_t c_cc[NCCS];
其具体意义如下。
c_iflag:输入模式标志,控制终端输入方式,具体参数如表6.3所示。
表6.3 c_iflag参数表
键 值 |
说 明 |
IGNBRK |
忽略BREAK键输入 |
BRKINT |
如果设置了IGNBRK,BREAK键的输入将被忽略,如果设置了BRKINT ,将产生SIGINT中断 |
IGNPAR |
忽略奇偶校验错误 |
PARMRK |
标识奇偶校验错误 |
INPCK |
允许输入奇偶校验 |
ISTRIP |
去除字符的第8个比特 |
INLCR |
将输入的NL(换行)转换成CR(回车) |
IGNCR |
忽略输入的回车 |
ICRNL |
将输入的回车转化成换行(如果IGNCR未设置的情况下) |
IUCLC |
将输入的大写字符转换成小写字符(非POSIX) |
IXON |
允许输入时对XON/XOFF流进行控制 |
IXANY |
输入任何字符将重启停止的输出 |
IXOFF |
允许输入时对XON/XOFF流进行控制 |
IMAXBEL |
当输入队列满的时候开始响铃,Linux在使用该参数而是认为该参数总是已经设置 |
c_oflag:输出模式标志,控制终端输出方式,具体参数如表6.4所示。
LINUX 使用tcgetattr函数与tcsetattr函数控制终端一相关推荐
- 使用tcgetattr函数与tcsetattr函数控制终端
2019独角兽企业重金招聘Python工程师标准>>> 使用tcgetattr函数与tcsetattr函数控制终端 为了便于通过程序来获得和修改终端参数,Linux还提供了tcget ...
- 使用tcgetattr函数与tcsetattr函数控制终端-转
为了便于通过程序来获得和修改终端参数,Linux还提供了tcgetattr函数和tcsetattr函数.tcgetattr用于获取终端的相关参数,而tcsetattr函数用于设置终端参数.这两个函数的 ...
- LINUX 使用tcgetattr函数与tcsetattr函数控制终端五
实例演练: 程序p6.2.c通过修改终端控制字符,将终端输入结束符由"Ctrl+D",修改成了"Ctrl+G".首先,程序调用tcgetattr函数获得标准输入 ...
- LINUX 使用tcgetattr函数与tcsetattr函数控制终端四
表6.7 c_cc支持的控制字符 宏 说 明 宏 说 明 VINTR Interrupt字符 VEOL 附加的End-of-file字符 VQUIT Quit字符 VTIME 非规范模式读 ...
- LINUX 使用tcgetattr函数与tcsetattr函数控制终端三
表6.5 c_oflag参数 键 值 说 明 CBAUD 波特率(4+1位)(非POSIX) CBAUDEX 附加波特率(1位)(非POSIX) CSIZE 字符长度,取值范围为CS5.C ...
- LINUX使用tcgetattr函数与tcsetattr函数控制终端二
表6.4 c_oflag参数 键 值 说 明 OPOST 处理后输出 OLCUC 将输入的小写字符转换成大写字符(非POSIX) ONLCR 将输入的NL(换行)转换成CR(回车)及NL( ...
- Linux 常用C函数说明-文件权限控制篇
chdir(改变当前的工作(目录) 相关函数 getcwd,chroot 表头文件 #include<unistd.h> 定义函数 int chdir(const char * pa ...
- linux系统编程学习_(2)进程控制-- fork函数、exec函数族、回收子进程--孤儿进程僵尸进程、wait函数
linux系统编程学习_(2)进程控制-- fork函数.exec函数族.回收子进程–孤儿进程僵尸进程.wait函数 进程控制 fork()函数 创建一个子进程. pid_t fork(void); ...
- c# 定位内存快速增长_CTF丨Linux Pwn入门教程:针对函数重定位流程的相关测试(下)...
Linux Pwn入门教程系列分享已到尾声,本套课程是作者依据i春秋Pwn入门课程中的技术分类,并结合近几年赛事中出现的题目和文章整理出一份相对完整的Linux Pwn教程. 教程仅针对i386/am ...
最新文章
- 网站发送邮件的邮箱服务器,教各位站长配置邮箱让网站能够发送Email邮件
- Microbiome:利用Nanopore高通量测序技术解析污水处理体系可移动抗性基因组(一作解读)
- 岗位推荐 | 微软小冰团队招聘数据挖掘/算法工程师实习生
- cmd命令重定向到剪切板
- HALCON示例程序measure_pump.hdev螺纹孔位置与尺寸测量
- Chapter7-2_BERT and its family - Introduction and Fine-tune
- pve安装黑群晖直通硬盘_更新教程:群晖下直接挂载WINDOWS的NTFS格式硬盘,试验通过......
- ubuntu-16.04安装程序报错 you might want to run 'apt-get -f install' to correct these
- apache ftpserver java开发_apache FTPserver安装
- 【多元统计分析】01.多元统计的基础
- ROS 机器人操作系统:概述
- 计算机主机核心通常包括,计算机的主机主要包括什么
- 华为云服务器安装宝塔到服务器
- vue2.x tui-image-editor图片编辑器的使用
- Python—docx 批量生成 docx 文件
- 由kobject_create_and_add全面了解kobject
- 【搜索算法】八数码问题的多种解法
- 华为OD机试(A、B卷)、机考,200分的题目整理如下,冲满分必备
- 第904题 水果成篮
- Debian 为什么没有成立非营利基金会?