第 7 章 Linux信号_网络系统建设与运维(初级).ppt

第 7 章 Linux信号_网络系统建设与运维(初级).ppt

  1. 1、本文档共38页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

7.5信号文件信号文件信号文件是一种将到达的信号作为字节流的特殊文件。Linux内核自2.6.22引入了一种非标准的系统调用接口eventfd、signalfd和timerfd,它们将事件、信号和到期时间抽象为字节流,其中signalfd便是信号文件的应用编程接口。信号文件signalfd函数头文件 #includesys/signalfd.h函数原型 intsignalfd(intfd,constsigset_t*mask,intflags);功能 创建信号文件。参数 fd:文件描述符。 mask:监听的信号集。 flags:打开方式。返回值 成功:返回文件描述符,失败,返回-1。信号文件(续)structsignalfd_siginfo{uint32_tssi_signo;//信号编号int32_tssi_errno;//错误码(未使用int32_tssi_code;//信号码uint32_tssi_pid;//发送进程IDuint32_tssi_uid;//发送用户实际IDint32_tssi_fd;//文件描述符(SIGIO)uint32_tssi_tid;//内核定时器IDuint32_tssi_band;//I/O事件(SIGIO)*/......uint8_tpad[X];//扩充成员变量};参数flags含义SFD_NONBLOCK非阻塞方式读写文件SFD_CLOEXEC设置close-on-exec选项signalfd函数中参数flags的定义实例分析intmain(intargc,char*argv[]){ sigset_tmask; sigemptyset(mask); sigaddset(mask,SIGQUIT); sigaddset(mask,SIGUSR1); sigprocmask(SIG_BLOCK,mask,NULL); intsfd=signalfd(-1,mask,0); for(;;){ structsignalfd_siginfofdsi; ssize_ts=read(sfd,fdsi,sizeof(structsignalfd_siginfo)); if(s!=sizeof(structsignalfd_siginfo)) exit(1); switch(fdsi.ssi_signo){ caseSIGUSR1: printf(getSIGUSR1\n); break; caseSIGQUIT: printf(getSIGQUIT\n); break; } }7.6信号处理的设计原则信号安全函数信号的异步性导致信号处理程序与主程序的并发执行,若一个引用了全局变量的函数同时出现在两条执行路径中,可能出现争夺全局变量的状况,从而造成数据不一致性,因此,该函数为信号不安全的。若一个函数被信号处理引用时,总是保持正确的执行结果,则称为信号安全函数。可重入函数一定是信号安全的,glibc中的函数未必全是信号安全的,具体情况可参阅联机文档。信号处理的设计原则(1)信号处理函数应尽可能短短小的信号处理函数能得到快速处理,降低信号嵌套的概率,从未减少资源竞争的风险。(2)使用信号安全的函数信号安全函数可避免因并发而造成的资源竞争。(3)保护现场环境由于errno变量的全局特性,为避免因修改errno对环境产生影响,在信号处理前应保存errno,待信号处理结束时恢复。信号处理的设计原则(续)(4)屏蔽不必要的信号在信号处理过程中应屏蔽不必要的信号,这样可降低信号嵌套的概率,从而降低信号处理的复杂性。(5)尽量避免信号与线程的混合使用在多线程环境下,为了降低信号处理的复杂性,应阻塞所有信号,仅指定某个线程以同步方式处理到达的信号。主讲人:郑谦益第7章Linux信号内容提要信号概述Linux系统中的信号信号的定义发送信号信号文件7.1信号概述信号概述信号是进程对所发生事件的一种响应模式,例如,数据溢出和定时

您可能关注的文档

文档评论(0)

大学计算机网络教授老刘 + 关注
实名认证
服务提供商

教师资格证、中级网络工程师持证人

专注于计算机技术相关文章撰写,方案设计,方案实现等,方案的个性定制,修改,润色等,本人已有8年相关工作经验,具有扎实的文案功底

领域认证该用户于2023年06月19日上传了教师资格证、中级网络工程师

1亿VIP精品文档

相关文档