.chap7Linux终端.ppt

.chap7Linux终端.ppt

ID:21376439

大小:1.83 MB

页数:73页

时间:2018-10-18

.chap7Linux终端.ppt_第1页
.chap7Linux终端.ppt_第2页
.chap7Linux终端.ppt_第3页
.chap7Linux终端.ppt_第4页
.chap7Linux终端.ppt_第5页
资源描述:

《.chap7Linux终端.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第7章终端戴瑾daijin.njujl@gmail.com南大金陵学院信息科学与工程系2主要内容终端读写终端驱动及接口termios函数库及使用终端读写3C语言编写简单的菜单程序基本函数getchar()与printf()定义菜单内容数组终端读写4C语言编写简单的菜单程序主程序终端读写5C语言编写简单的菜单程序显示菜单及获取用户输入核心代码终端读写6C语言编写简单的菜单程序显示菜单及获取用户输入核心代码终端读写7C语言编写简单的菜单程序工作过程分析getchoice()显示程序介绍信息greet及样本菜单choices让用户选择初始字符main()中的do循环体通过get

2、char()获取用户输入,直到接收到一个与菜单数组某个选项的首字符匹配的字符为止终端读写8C语言编写简单的菜单程序主要问题每次正确选择后,都会出现“incorrectchoice,selectagain”原因只有在按回车键后才会读取输入实际输入两个字符终端读写9规范模式与非规范模式规范模式按回车键后,才能读到终端输入基于行处理在输入行完成前,终端接口负责管理所有用户键盘输入,包括退格键,应用程序读不到用户输入的任何字符非规范模式应用程序对用户输入字符的处理拥有更大的控制权终端读写10换行符的处理Linux行结束标志:换行符LF回车符的输入要由Linux终端处理部分负责完成

3、优点对文本文件及二进制可执行文件无任何实际区别在对终端、打印机或绘图仪进行输入输出时,才需要对回车进行处理其他操作系统行结束标志:回车符CR(0D)+换行符LF(0A)对前例换行符的处理终端读写11输出重定向处理正常情形所有数据都被重定向到文件,对用户不可见一般需求让用户看到提示信息,而看不到其他输出内容判断标准输出是否被重定向isatty()检查底层文件描述符是否关联到一个终端如果打开的文件描述符关联到一个终端,则返回1否则返回0只能对文件描述符操作需通过fileno()将文件流和文件描述符关联终端读写12检查是否存在重定向源代码终端读写13检查是否存在重定向输出结果终

4、端读写14与终端对话基本需求不希望程序中与用户交互部分被重定向,但允许其他的输入和输出被重定向解决思想将与用户交互部分与stdout、stderr分离实现途径直接对终端进行读写特殊设备文件:/dev/tty该设备始终指向当前终端或者当前登录会话终端读写15使用/dev/tty终端读写16使用/dev/tty终端读写17使用/dev/tty终端读写18使用/dev/tty终端读写19使用/dev/tty终端读写20使用/dev/tty运行结果终端读写21主要内容终端读写终端驱动及接口termios函数库及使用22终端驱动程序和通用终端接口背景更细的终端控制能力,而不是用简单

5、的文件操作来完成终端控制函数用于控制终端,与读写操作函数分离终端驱动及接口23终端驱动程序基本控制功能行编辑是否允许使用退格键进行编辑缓存立即读取字符,还是等一段可调配的延迟回显允许显示控制字符回车/换行(CR/LF)如何在输入/输出时映射回车/换行符如打印“”时该如何处理线速当用PC电脑作为控制台时,很少使用该功能但使用调制解调器或者串行线连接的终端很重要终端驱动及接口24终端控制驱动的硬件模型终端驱动及接口25主要内容终端读写终端驱动及通用接口termios函数库及使用2627termios结构POSIX规范的标准结构通过设置termios类型变量和使用一组函数调

6、用,可对终端接口进行控制termios.h需要链接到curses库编译时需在末尾加上-lcurses支持的操作模式分类输入模式输出模式控制模式本地模式特殊字符控制termoos函数库及使用28termios结构定义结构定义termoos函数库及使用termios基本操作头文件#include函数原型inttcgetattr(intfd,structtermios*termios_p);inttcsetattr(intfd,intactions,conststructtermios*termios_p);actions参数说明TCSANOW:立即对变量

7、值进行修改TCSADRAIN:等当前输出完成后修改TCSAFLUSH:等当前输出完成后修改,但丢弃还未从read调用返回的当前可用输入29termoos函数库及使用30输入模式功能控制输入数据(终端驱动程序从串行口或键盘接收到的字符)在被传递给程序之前的处理方式通过termios中的c_iflag成员的标志对其控制BRKINT:当收到break时产生一个中断IGNBRK:忽略breakICRNL:将回车符转换成换行IGNCR:忽略回车符INLCR:将换行符转换成回车符IGNPAR:忽略有校验错的字符INPCK:对接收到的字符执

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。