linux应用程序开发实验报告3详解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告
学生姓名:白迪学生学号:222014*********
日期:2016年11月15日与11月29日
院(系):计算机与信息科学学院软件学院专业(班级):网络工程实验题目:终端驱动属性编程及利用属性特性的应用程序编程
一. 实验目的
掌握终端驱动属性的特殊功能,掌握终端驱动属性的显示与修改方法编程,掌握利用终端驱动属性的特属性编写需要特殊功能的应用程序技巧。
二. 实验原理
三. 实验器材
安装有Windows操作系统PC机一台,实验环境为LINUX虚拟机(包含gcc 与gdb).
四. 实验分析与设计
补全终端设备属性位与控制字符的信息输出:
Main函数
Flags的补充
显示flags函数
Setecho函数,设置echo的状态位Echostate函数。显示echo状态
Setecho函数
忽略特殊的一些按键,CTRL+C、CTRL+\,不能一直阻塞等待键盘输入,设置等待一定的时间的非阻塞。
预处理
Main函数
Tty—mode
set_nodelay_mode()//没阻塞
set_nobuf_noecho_mode()//没回显,没缓冲
Getresponse()
中断处理函数
五. 实验结果
属性位与控制字符的信息输出
stty控制字符的修改功能,setecho
忽略特殊的一些按键,CTRL+C、CTRL+\,不能一直阻塞等待键盘输入,设置等待一定的时间的非阻塞。当按下的键不是y或者n就显示f。
六. 实验心得
通过本次试验中对终端文件更加的了解了,还学会了对中断文件的一些基本的设置,前面的实验做起来就是一些验证比较简单,但是收获很大,最后一个做的时候先看过书后,自己编写的,调试过程中总是出错,做到最后跟书上的代码比较发现自己的代码跟书上比差了好远,修改了很多,自己用的是Redhat5,cc—
—t里边的VTIME设置后没有用,还是选择了sleep函数实现该功能。
这次试验更加觉得以后要多编程才是最好的提升能力的方法。
七. 实验报告评价
成绩:
指导教师:
日期:
第3个实验报告任务要求:
1、参见教材p141的终端变量控制属性位与控制字符,借助在线帮助,借鉴p144页程序,补全属性位与控制字符的信息输出。(验证)
2、模仿linux系统自带的stty命令,实现1到2个属性或控制字符的修改功能(验证)
3、继续完善第1章的more命令,实现more 提示符不上翻的功能,以及输入字符不缓冲,驱动程序直接提交给应用程序(设计)
4、对终端有特殊处理要求的程序,有时需要忽略特殊的一些按键,比如不被强制终止的CTRL+C、CTRL+D,CTRL+Z,CTRL+\
5、对终端有特殊要求的程序,比如不能一直阻塞等待键盘输入,可以考虑设置等待一定的时间
的非阻塞。