一、结构体成员

struct termios {
tcflag_t c_iflag;
tcflag_t c_oflag;
tcflag_t c_cflag;
tcflag_t c_lflag;
cc_t c_cc[NCCS];
};

二、成员具体意义

 (1)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在使用该参数而是认为该参数总是已经设置

 (2)c_oflag:输出模式标志,控制终端输出方式,具体参数值如下所示

    OPOST 处理后输出

    OLCUC 将输入的小写字符转换成大写字符(非POSIX)

    ONLCR 将输入的NL(换行)转换成CR(回车)及NL(换行)

    OCRNL 将输入的CR(回车)转换成NL(换行)

    ONOCR 第一行不输出回车符

    ONLRET 不输出回车符

    OFILL 发送填充字符以延迟终端输出

    OFDEL 以ASCII码的DEL作为填充字符,如果未设置该参数,填充字符将是NUL(‘/0’)(非POSIX)

    NLDLY 换行输出延时,可以取NL0(不延迟)或NL1(延迟0.1s)

    CRDLY 回车延迟,取值范围为:CR0、CR1、CR2和 CR3

    TABDLY 水平制表符输出延迟,取值范围为:TAB0、TAB1、TAB2和TAB3

    BSDLY 空格输出延迟,可以取BS0或BS1

    VTDLY 垂直制表符输出延迟,可以取VT0或VT1

    FFDLY 换页延迟,可以取FF0或FF1

 (3)c_cflag:控制模式标志,指定终端硬件控制信息,具体参数值如下所示

    CBAUD 波特率(4+1位)(非POSIX)

    CBAUDEX 附加波特率(1位)(非POSIX)

    CSIZE 字符长度,取值范围为CS5、CS6、CS7或CS8

    CSTOPB 设置两个停止位

    CREAD 使用接收器

    PARENB 使用奇偶校验

    PARODD 对输入使用奇偶校验,对输出使用偶校验

    HUPCL 关闭设备时挂起

    CLOCAL 忽略调制解调器线路状态

    CRTSCTS 使用RTS/CTS流控制

 (4)c_lflag:本地模式标志,控制终端编辑功能,具体参数值如下所示

    ISIG 当输入INTR、QUIT、SUSP或DSUSP时,产生相应的信号

    ICANON 使用标准输入模式

    XCASE 在ICANON和XCASE同时设置的情况下,终端只使用大写

    ECHO 显示输入字符

    ECHOE 如果ICANON同时设置,ERASE将删除输入的字符,WERASE将删除输入的单词

    ECHOK 如果ICANON同时设置,KILL将删除当前行

    ECHONL 如果ICANON同时设置,即使ECHO没有设置依然显示换行符

    ECHOPRT 如果ECHO和ICANON同时设置,将删除打印出的字符(非POSIX)

    TOSTOP 向后台输出发送SIGTTOU信号

termios结构体的内容的更多相关文章

  1. Linux串口通信之termios结构体说明

    termios结构体中,该结构体一般包括如下的成员:tcflag_t c_iflag;      tcflag_t c_oflag;      tcflag_t c_cflag;      tcfla ...

  2. struct termios结构体【转】

    本文转载自:http://blog.csdn.net/vevenlcf/article/details/51096122 一.数据成员 termios 函数族提供了一个常规的终端接口,用于控制非同步通 ...

  3. Linux串口—struct termios结构体【转】

    转自:https://blog.csdn.net/yemingzhu163/article/details/5897156 一.数据成员 termios 函数族提供了一个常规的终端接口,用于控制非同步 ...

  4. struct termios结构体详解

    一.数据成员 termios 函数族提供了一个常规的终端接口,用于控制非同步通信端口. 这个结构包含了至少下列成员:tcflag_t c_iflag;      /* 输入模式 */tcflag_t ...

  5. termios结构体各成员的值(FreeBSD 12.0)

    一.文件位置 /usr/include/sys/_termios.h 二.文件内容 /*- * SPDX-License-Identifier: BSD-3-Clause * * Copyright ...

  6. p/invoke碎片,对结构体的处理

    结构体的一些相关知识 可直接转换类类型,比如int类型,在托管代码和非托管代码中占据内存大小 和意义都是一个样的. 结构体封送的关键是:在托管代码和非托管代码中定义的一致性.什么是定义的一致性?包括结 ...

  7. 内核中用于数据接收的结构体struct msghdr(转)

    内核中用于数据接收的结构体struct msghdr(转) 我们从一个实际的数据包发送的例子入手,来看看其发送的具体流程,以及过程中涉及到的相关数据结构.在我们的虚拟机上发送icmp回显请求包,pin ...

  8. (转) C/C++中结构体(struct)知识点强化

    本文转载于 http://pcedu.pconline.com.cn/empolder/gj/c/0503/567942_all.html#content_page_1 所有程序经过本人验证,部分程序 ...

  9. 一道经典的C++结构体的题目

    题目描述: 有10个学生,每个学生的数据包括学号.姓名.英语.数学.物理三门课的成绩,从键盘输入10个学生数据,要求打印出3门课程的总平均成绩,以及最高分的学生的数据(包括学号,姓名,3门课的平均成绩 ...

随机推荐

  1. JAVA多线程之当一个线程在执行死循环时会影响另外一个线程吗?

    一,问题描述 假设有两个线程在并发运行,一个线程执行的代码中含有一个死循环如:while(true)....当该线程在执行while(true)中代码时,另一个线程会有机会执行吗? 二,示例代码(代码 ...

  2. 网页发起qq临时会话

    qq官方:http://shang.qq.com/v3/widget.html

  3. poj2259 Team Queue

    吼哇,又是水题. 我本来准备开1010个queue的,但是STL容器里好像只有vector滋磁开组,于是只好数组模拟... 然后模拟过了...... #include <cstdio> # ...

  4. 网络流24题 gay题报告

    洛谷上面有一整套题. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 extra ①飞行员配对方案问题.top 裸二分图匹 ...

  5. 【洛谷P1403】约数研究

    题目大意:求\[\sum\limits_{i=1}^n\sum\limits_{d|i}1\] 题解:交换求和顺序即可. \[\sum\limits_{i=1}^n\sum\limits_{d|i}1 ...

  6. Vue+koa2开发一款全栈小程序(1.课程介绍+2.ES6入门)

    1.课程介绍 1.课程概述 1.做什么? Vue+koa2开发一款全栈小程序 2.哪些功能? 个人中心.图书列表.图书详情.图书评论.个人评论列表 3.技术栈 小程序.Vue.js.koa2.koa- ...

  7. Python基础语法总结

    1.Python标识符 在 Python 里,标识符有字母.数字.下划线组成. 在 Python 中,所有标识符可以包括英文.数字以及下划线(_),但不能以数字开头. Python 中的标识符是区分大 ...

  8. JS模块化开发(三)——seaJs+grunt

    1.seaJs直接构建存在的问题 由于模块之间的依赖require引用的是模块名,当多个js模块被合并成一个时,会由于找不到模块名而报错 2.seaJs+grunt开发 用到的插件:grunt-cmd ...

  9. UI 滑动面板的移动控制

    通过拖拽的方式移动面板,在单个界面看到多个视图面板 需要导入UnityEngine.EventSystems;    事件命名空间 进而继承两个重要的接口IBeginDragHandler,IDrag ...

  10. 数据库工具类 JdbcUtils

    什么时候自己创建工具类 如果一个功能经常用到 我们建议把这个功能做成工具类 创建JdbcUtils包含三个方法 1: 把几个字符串 定义为常量 2:得到数据库连接getConnection(); 3 ...