网站大量收购独家精品文档,联系QQ:2885784924

[工学]LINUX环境编程-信号.ppt

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

LINUX应用编程 – 信号 2009年12月25日 信号编程 –信号概念 信号编程 – 信号的来源 信号编程 – 信号的种类 信号编程 – LINUX系统信号 信号编程 – LINUX系统信号 信号编程 – 系统信号 信号编程 – CORE文件 信号编程 – CORE文件 信号编程 – CORE文件 信号编程 – 信号处理流程 信号编程 – 信号的相关概念 信号编程 – 信号的使用 信号编程 – 信号的处理 信号编程 – 信号注册函数signal 信号编程 – pause函数 信号编程 – 特殊信号 信号编程 – 信号的继承 信号编程 – 信号集 信号编程 – sigaction 信号编程 – sigaction 信号编程 – 信号与系统调用 信号编程 – 可重入与不可重入函数 信号编程 – 可重入函数表 信号编程 – 可重入函数表 信号编程 – 信号发送函数kill 信号编程 – 信号发送函数kill 信号编程 – 信号发送函数raise 信号编程 – 信号发送函数sigqueue 信号编程 – 信号屏蔽字sigprocmask 信号编程 – 信号屏蔽sigpending 信号编程 – sigsuspend 作业 sigpending返回当前处于阻塞递送的信号,即信号已经产生,但还没有地送给进程处理。 #include signal.h int sigpending(sigset_t *set); 成功返回0,失败返回-1 在sigpending中,如果我们在解除某个信号调用sleep函数,那么未被递送的信号会首先被处理。导致pause无法被唤醒。 需要把解除信号和等待信号递送做成一个原子操作,这样就不会产生上述问题。 sigsuspend会把当前信号屏蔽字设置为mask,然后挂起调用进程直到有信号被递送。 总是返回-1,因为它是被信号中断后返回的! #include signal.h int sigsuspend(const sigset_t *mask); 1. * 信号是软件中断。它即可以作为进程间通信的一种机制,更重要的是,信号总是中断一个进程的正常运行,它更多地被用于处理一些非正常情况。 信号是异步的,进程并不知道信号什么时候到达。 进程既可以处理信号,也可以发送信号给特定进程。 每个信号都有一个名字,这些名字都以SIG开头。例如:SIGABRT是进程异常终止信号。 硬件异常产生信号:除数为0、无效的存储访问等等。这些条件通常由硬件检测到,并将其通知内核。然后内核为该条件发生时正在运行的进程产生适当的信号。 软件产生异常信号,可以用kill、raise、alarm、setitimer和 sigqueue产生信号。 不可靠的信号:Linux信号机制基本上是从Unix系统中继承过来的。早期Unix系统中的信号机制比较简单和原始,后来在实践中暴露出一些问题,因此,把那些建立在早期机制上的信号叫做“不可靠信号”,信号值小于SIGRTMIN的叫不可靠信号。 每次信号处理后,该信号对应的处理函数会恢复到默认值。 信号可能丢失。 可靠信号:信号值位于SIGRTMIN和SIGRTMAX之间的信号都是可靠信号,可靠信号克服了信号可能丢失的问题 。 实时信号与非实时信号:Linux目前定义了64种信号(将来可能会扩展),前面32种为非实时信号,后32种为实时信号。非实时信号都不支持排队,都是不可靠信号,实时信号都支持排队,都是可靠信号。 进程终止 终端输入了中断字符ctrl+c SIGINT 进程终止并产生core文件 代码中有非法指令 SIGILL 进程终止 终端关闭时产生这个信号 SIGHUP 进程终止并且产生core文件。 算术运算异常,除0等。 SIGFPE 继续执行或者忽略 让停止的进程继续执行 SIGCONT 忽略该信号 进程停止或者终止时,父进程会收到该信号。 SIGCHLD 结束终止并产生core文件 总线错误,地址没对齐等。取决于具体硬件。 SIGBUS 进程终止 timer到期,有alarm或者setitimer SIGALRM 进程终止并且产生core文件 由程序调用 abort时产生该信号。程序异常结束。 SIGABRT 默认处理 信号说明 信号名称 工 进程暂停执行 然某个进程停止执行,该信号不能被用户捕捉。 SIGSTOP 进程终止并且产生core文件 内存非法访问,默认打印出segment fault SIGSEGV 进程终止并且产生core文件 Ctrl+\,不同于SIGINT,这个是会产生core dump文件的。 SIGQUIT 进程终止 Ups电源切换时 SIGPWR 进程终止 有setitimer设置的timer到期引发 。 SIGPROF 进程终止 异步I/O,跟SIGIO

文档评论(0)

hhuiws1482 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:5024214302000003

1亿VIP精品文档

相关文档