- 1、本文档共36页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
下面的这个版本捕捉SIGINT,重置驱动程序,然后返回no的代码 #include stdio.h #include termios.h #include fcntl.h #include string.h #include signal.h #define ASK Do you want another transaction #define TRIES 3 /* max tries */ #define SLEEPTIME 2 /* time per try */ #define BEEP putchar(\a) /* alert user */ main() { int response; void ctrl_c_handler(int); tty_mode(0); set_cr_noecho_mode(); set_nodelay_mode(); signal( SIGINT, ctrl_c_handler ); signal( SIGQUIT, SIG_IGN ); response = get_response(ASK, TRIES); tty_mode(1); return response; } 6.5 为处理信号做准备:play_again4.c 程序使用signal来告诉内核它需要忽略那些信号。如果有人编写了一个将所有类型的信号设置为SIG_IGN,然后执行一个无限循环将会如何呢? 幸好,对系统管理员(和程序员)来说,Unix不可能让一个程序永不停止。有两个信号是不能被忽略和捕抓的。阅读手册或头文件中的信号列表,看看哪些信号是不可阻挡的 6.6 进程终止 这三个方面对所有的设备都适用。考虑一块声卡或一个磁盘驱动程序。设备有许多种由设备驱动程序控制的设置,需要了解这些设置。同样,程序必须实现特定的功能,调整驱动程序以满足这些需求。最后,很多设备驱动程序会产生信号报告错误或特定事件。磁盘驱动程序可能在结束从磁盘到内存数据块的复制时发送一个信号,程序必须能够对这些信号作出响应。 6.7 为设备编程 现在已经了解了编写终端控制程序的三个方面。首先,学习了驱动程序的属性和如何控制连接。然后,学习了应用程序的特定需求,并调整驱动程序以满足这些需求。最后,学习了如何处理信号——中断的一种形式。 1. 主要内容 有些程序处理从特定设备来的数据。这些与特定设备相关的程序必须控制与设备的连接。Unix系统中最常见的设备是终端。 键盘输入分为3类,终端驱动程序对这些输入做不同的处理。大多数键代表常规数据,它们从驱动程序传输到程序。有些键调用驱动程序中的编辑函数。如果按下删除键,驱动程序将前一个字符从它的行缓冲中删除,并将命令发送到终端屏幕,使之从显示器中删除字符。最后,有些键调用处理控制函数。Ctrl-C健告诉驱动程序调用内核中某个函数,这个函数给进程发送一个信号。终端驱动程序支持若干种处理控制函数,它们都通过发送信号到进程来实现控制。 小结 2. 进一步问题 Unix系统总是从很多终端或其他设备接收数据。用户可能在任何时刻输入数据,内核必须处理这些输入。Unix系统同时运行若干个程序。内核如何在同一时刻维护多个并发的任务并对多个不可预知的中断做出响应呢?下一章将通过编写一个计算机游戏程序来探讨这个问题。 终端驱动程序有很多设置。各个设置的特定值决定了终端驱动程序的模式。为用户编写的程序通常需要设置终端驱动程序为特定的模式。 信号是从内核发送给进程的一种简短消息。信号可能来自用户、其他进程或内核本身。进程可以告诉内核,在它收到信号是需要做出怎样的响应 Unix/Linux编程 北京化工大学 信息科学与技术学院计算机系 易军凯 yijk@mail.buct.edu.cn 第6章 为用户编程:终端控制和信号 概念与技巧 软件工具与用户程序 读取和修改终端驱动程序的设置 终端驱动程的模式 非阻塞输入 用户的超时 对信号的介绍:Ctrl-C是如何工作的 相关的系统调用 fcntl signal 主要内容: 6.1 软件工具与针对特定设备编写的程序 6.2 终端驱动程序的模式 6.3 编写一个用户程序:play_again.c 6.4 信号 6.5 为处理信号做准备: play_again4.c 6.6 进程终止 6.7 为设备编程
您可能关注的文档
- AutoCAD2010基础10文字注释.ppt
- audi七夕活动方案.ppt
- 农药行业的生产设备腐蚀与防护.ppt
- 《三个太阳》课件(16页).ppt
- B-ISO9000术语和定义.ppt
- 冬季养生和膏方调(何富乐).ppt
- 《三峡》课件(17页).ppt
- 冬妈妈和麦苗苗2.ppt
- B8题四:认识论转向与马克思的哲学革命.ppt
- 冬暖夏凉的衣服4.ppt
- 2024年湖南省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年江西省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年安徽省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年福建省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年广东省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年河北省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年河南省高考英语试卷(含答案解析)+听力音频.docx
- 2024年湖北省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年湖南省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年江苏省高考英语试卷(含答案解析)+听力音频+听力原文.docx
最近下载
- 贵州省贵阳市普通中学2021-2022学年高一上学期信息技术期末监测考试试卷.docx VIP
- PCB镀铜针孔专案改善报告.ppt
- 体表肿块切除操作评分标准.doc
- (苏教版)数学二年级上册寒假作业计算题“天天练”,含30份题组,附参考答案.doc
- 2023年福建考评员考试答案.docx VIP
- 第二单元跨学科实践活动1微型空气质量“检测站”的组装与使用课件-九年级化学人教版(2024)上册.pptx
- 数学核心素养在小学教育中的具体应用教学研究课题报告.docx
- 人防工程战时给排水设备安装深度及注意问题.pptx
- 上海交通大学《社会心理学》内部题库练习期末真题汇编及答案.pdf
- 《工程制图及 CAD》课程思政教学案例(一等奖).docx
文档评论(0)