为了便于通过程序来获得和修改终端参数,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函数控制终端一相关推荐

  1. 使用tcgetattr函数与tcsetattr函数控制终端

    2019独角兽企业重金招聘Python工程师标准>>> 使用tcgetattr函数与tcsetattr函数控制终端 为了便于通过程序来获得和修改终端参数,Linux还提供了tcget ...

  2. 使用tcgetattr函数与tcsetattr函数控制终端-转

    为了便于通过程序来获得和修改终端参数,Linux还提供了tcgetattr函数和tcsetattr函数.tcgetattr用于获取终端的相关参数,而tcsetattr函数用于设置终端参数.这两个函数的 ...

  3. LINUX 使用tcgetattr函数与tcsetattr函数控制终端五

    实例演练: 程序p6.2.c通过修改终端控制字符,将终端输入结束符由"Ctrl+D",修改成了"Ctrl+G".首先,程序调用tcgetattr函数获得标准输入 ...

  4. LINUX 使用tcgetattr函数与tcsetattr函数控制终端四

    表6.7 c_cc支持的控制字符 宏 说    明 宏 说    明 VINTR Interrupt字符 VEOL 附加的End-of-file字符 VQUIT Quit字符 VTIME 非规范模式读 ...

  5. LINUX 使用tcgetattr函数与tcsetattr函数控制终端三

    表6.5 c_oflag参数 键    值 说    明 CBAUD 波特率(4+1位)(非POSIX) CBAUDEX 附加波特率(1位)(非POSIX) CSIZE 字符长度,取值范围为CS5.C ...

  6. LINUX使用tcgetattr函数与tcsetattr函数控制终端二

    表6.4 c_oflag参数 键    值 说    明 OPOST 处理后输出 OLCUC 将输入的小写字符转换成大写字符(非POSIX) ONLCR 将输入的NL(换行)转换成CR(回车)及NL( ...

  7. Linux 常用C函数说明-文件权限控制篇

    chdir(改变当前的工作(目录) 相关函数  getcwd,chroot 表头文件  #include<unistd.h> 定义函数  int chdir(const char * pa ...

  8. linux系统编程学习_(2)进程控制-- fork函数、exec函数族、回收子进程--孤儿进程僵尸进程、wait函数

    linux系统编程学习_(2)进程控制-- fork函数.exec函数族.回收子进程–孤儿进程僵尸进程.wait函数 进程控制 fork()函数 创建一个子进程. pid_t fork(void); ...

  9. c# 定位内存快速增长_CTF丨Linux Pwn入门教程:针对函数重定位流程的相关测试(下)...

    Linux Pwn入门教程系列分享已到尾声,本套课程是作者依据i春秋Pwn入门课程中的技术分类,并结合近几年赛事中出现的题目和文章整理出一份相对完整的Linux Pwn教程. 教程仅针对i386/am ...

最新文章

  1. 网站发送邮件的邮箱服务器,教各位站长配置邮箱让网站能够发送Email邮件
  2. Microbiome:利用Nanopore高通量测序技术解析污水处理体系可移动抗性基因组(一作解读)
  3. 岗位推荐 | 微软小冰团队招聘数据挖掘/算法工程师实习生
  4. cmd命令重定向到剪切板
  5. HALCON示例程序measure_pump.hdev螺纹孔位置与尺寸测量
  6. Chapter7-2_BERT and its family - Introduction and Fine-tune
  7. pve安装黑群晖直通硬盘_更新教程:群晖下直接挂载WINDOWS的NTFS格式硬盘,试验通过......
  8. ubuntu-16.04安装程序报错 you might want to run 'apt-get -f install' to correct these
  9. apache ftpserver java开发_apache FTPserver安装
  10. 【多元统计分析】01.多元统计的基础
  11. ROS 机器人操作系统:概述
  12. 计算机主机核心通常包括,计算机的主机主要包括什么
  13. 华为云服务器安装宝塔到服务器
  14. vue2.x tui-image-editor图片编辑器的使用
  15. Python—docx 批量生成 docx 文件
  16. 由kobject_create_and_add全面了解kobject
  17. 【搜索算法】八数码问题的多种解法
  18. 华为OD机试(A、B卷)、机考,200分的题目整理如下,冲满分必备
  19. 第904题 水果成篮
  20. Debian 为什么没有成立非营利基金会?

热门文章

  1. 0127-python内置函数(一).abb
  2. 二维数组中的查找问题
  3. C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 防止脱库、防止篡改数据...
  4. 修改已经打开的对话框的浏览路径
  5. Fedora10下安装xgcom串口调试小助手
  6. UA MATH523A 实分析1 度量空间 概念与定理总结
  7. GIS空间数据结构 - 矢量和栅格
  8. mysql安装和服务相关问题总结
  9. 图解用Wireshark进行Http协议分析
  10. 图解web前端开发工具教程