- 1、本文档共68页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[信息与通信]16信号一
本章目标 命名管道(FIFO) 匿名管道与命名管道区别 命名管道的打开规则 命名管道示例程序 * 管道应用的一个限制就是只能在具有共同祖先(具有亲缘关系)的进程间通信。 如果我们想在不相关的进程之间交换数据,可以使用FIFO文件来做这项工作,它经常被称为命名管道。 命名管道是一种特殊类型的文件 命名管道(FIFO) 创建一个命名管道 命名管道可以从命令行上创建,命令行方法是使用下面这个命令: $ mkfifo filename 命名管道也可以从程序里创建,相关函数有: int mkfifo(const char *filename,mode_t mode); 匿名管道与命名管道 匿名管道由pipe函数创建并打开。 命名管道由mkfifo函数创建,打开用open FIFO(命名管道)与pipe(匿名管道)之间唯一的区别在它们创建与打开的方式不同,一量这些工作完成之后,它们具有相同的语义。 命名管道的打开规则 如果当前打开操作是为读而打开FIFO时 O_NONBLOCK disable:阻塞直到有相应进程为写而打开该FIFO O_NONBLOCK enable:立刻返回成功 如果当前打开操作是为写而打开FIFO时 O_NONBLOCK disable:阻塞直到有相应进程为读而打开该FIFO O_NONBLOCK enable:立刻返回失败,错误码为ENXIO 总结 命名管道(FIFO) 匿名管道与命名管道区别 命名管道的打开规则 命名管道示例程序 * sigprocmask(2-1) #include signal.h int sigprocmask(int how, const sigset_t *set, sigset_t *oset); 功能:读取或更改进程的信号屏蔽字。 返回值:若成功则为0,若出错则为-1 如果oset是非空指针,则读取进程的当前信号屏蔽字通过oset参数传出。如果set是非空指针,则更改进程的信号屏蔽字,参数how指示如何更改。如果oset和set都是非空指针,则先将原来的信号屏蔽字备份到oset里,然后根据set和how参数更改信号屏蔽字。假设当前的信号屏蔽字为mask,下表说明了how参数的可选值。 sigprocmask(2-2) how参数的含义 总结 信号在内核中的表示 信号阻塞与未诀 信号集操作函数 sigprocmask * 信号(五) 第二十章 * 本章目标 sigaction函数 sigaction结构体 sigaction示例 * sigaction 包含头文件signal.h 功能:sigaction函数用于改变进程接收到特定信号后的行为。 原型: int sigaction(int signum,const struct sigaction *act,const struct sigaction *old); 参数 该函数的第一个参数为信号的值,可以为除SIGKILL及SIGSTOP外的任何一 个特定有效的信号(为这两个信号定义自己的处理函数,将导致信号安装错误) 第二个参数是指向结构sigaction的一个实例的指针,在结构 sigaction的实例中,指定了对特定信号的处理,可以为空,进程会以缺省方式对信号处理 第三个参数oldact指向的对象用来保存原来对相应信号的处理,可指定oldact为NULL。 返回值:函数成功返回0,失败返回-1 sigaction结构体 第二个参数最为重要,其中包含了对指定信号的处理、信号所传递的信息、信号处理函数执行过程中应屏蔽掉哪些函数等等 struct sigaction { void (*sa_handler)(int); void (*sa_sigaction)(int, siginfo_t *, void *); sigset_t sa_mask; int sa_flags; void (*sa_restorer)(void); }; 总结 sigaction函数 sigaction结构体 sigaction示例 * 信号(六) 第二十一章 * 本章目标 sigqueue函数 sigval联合体 sigqueue示例 * sigqueue函数 功能:新的发送信号系统调用,主要是针对实时信号提出的支持信号带有参数,与函数sigaction()配合使用。 原型: int sigqueue(pid_t pid, int sig, const union sigval value); 参数 sigqueue的第一个参数是指定接收信号的进程id,第二个参数确定即将发送的信号,第三个参数是一个联合数据结构union sigval,指定了信号传递的参数,即通常所说的4字节值。 返回值成功返回0,失败返回-1 sigval
您可能关注的文档
- [从业资格考试]虞城县沙集乡初级中学教师情况封面.doc
- [从业资格考试]诊断学.ppt
- [从业资格考试]邮政储汇业务员理论知识试卷五级.doc
- [从业资格考试]金融单考辅导A.pdf
- [从业资格考试]银行土地房产分析报告改.doc
- [从业资格考试]陆丰市教师招聘考试教材.doc
- [从业资格考试]集输工高级技师选择题1-479.doc
- [企业管理]10安全阀培训.ppt
- [企业管理]116申艾报告 428.doc
- [企业管理]14《我要的是葫芦》.ppt
- 2024-2025学年桑植一中高一入学分班考试语文作文押题及范文分析.docx
- 2024-2025学年上海市进才中学高一入学分班考试语文作文押题及范文分析.docx
- 中国滴水水表行业市场情况研究及竞争格局分析报告.pdf
- 2024-2025学年上海师大附中高一入学分班考试语文作文押题及范文分析.docx
- 2024-2025学年清华大学附属实验学校高一入学分班考试语文作文押题及范文分析.docx
- 2024-2025学年上海市控江中学高一入学分班考试语文作文押题及范文分析.docx
- 2024-2025学年上海静安外国语中学高一入学分班考试语文作文押题及范文分析.docx
- 2024-2025学年宁波外国语学校高一入学分班考试语文作文押题及范文分析.docx
- 2024-2025学年南通中学高一入学分班考试语文作文押题及范文分析.docx
- 2024-2025学年宁波市鄞州中学高一入学分班考试语文作文押题及范文分析.docx
文档评论(0)