信号(signal):通知进程已发生某种情况的技术,例如:,某个进程执行了除法操作,其除数为0,则将名为SIGFPF(浮点异常)的信号发送给该进程,进程如何处理信号有三种选择:

1.忽略该信号,有些信号表示硬件异常,例如,除以0或者范围进程地址空间以外的单元等,因为这些异常产生的异常后果不确定,所以不推荐使用这种处理方式。

2.按照系统默认方式处理,对于除以0的情况,系统默认是终止该进程。

3.提供一个函数,信号发生时则调用该函数,扑捉改信号,使用这种方式,我们只要调用我们自己为此设定的函数,就能知道什么时候产生了信号,并做好处理方式。

下面的情况可以产生Signal:

1. 按下CTRL+C产生SIGINT 2. 硬件中断,如除0,非法内存访问(SIGSEV)等等 3. Kill函数可以对进程发送Signal 4. Kill命令。实际上是对Kill函数的一个包装 5. 软件中断。如当Alarm Clock超时(SIGURG),当Reader中止之后又向管道写数据(SIGPIPE),等等

Signal Description
SIGABRT 由调用abort函数产生,进程非正常退出
SIGALRM 用alarm函数设置的timer超时或setitimer函数设置的interval timer超时
SIGBUS 某种特定的硬件异常,通常由内存访问引起
SIGCANCEL 由Solaris Thread Library内部使用,通常不会使用
SIGCHLD 进程Terminate或Stop的时候,SIGCHLD会发送给它的父进程。缺省情况下该Signal会被忽略
SIGCONT 当被stop的进程恢复运行的时候,自动发送
SIGEMT 和实现相关的硬件异常
SIGFPE 数学相关的异常,如被0除,浮点溢出,等等
SIGFREEZE Solaris专用,Hiberate或者Suspended时候发送
SIGHUP 发送给具有Terminal的Controlling Process,当terminal被disconnect时候发送
SIGILL 非法指令异常
SIGINFO BSD signal。由Status Key产生,通常是CTRL+T。发送给所有Foreground Group的进程
SIGINT 由Interrupt Key产生,通常是CTRL+C或者DELETE。发送给所有ForeGround Group的进程
SIGIO 异步IO事件
SIGIOT 实现相关的硬件异常,一般对应SIGABRT
SIGKILL 无法处理和忽略。中止某个进程
SIGLWP 由Solaris Thread Libray内部使用
SIGPIPE 在reader中止之后写Pipe的时候发送
SIGPOLL 当某个事件发送给Pollable Device的时候发送
SIGPROF Setitimer指定的Profiling Interval Timer所产生
SIGPWR 和系统相关。和UPS相关。
SIGQUIT 输入Quit Key的时候(CTRL+\)发送给所有Foreground Group的进程
SIGSEGV 非法内存访问
SIGSTKFLT Linux专用,数学协处理器的栈异常
SIGSTOP 中止进程。无法处理和忽略。
SIGSYS 非法系统调用
SIGTERM 请求中止进程,kill命令缺省发送
SIGTHAW Solaris专用,从Suspend恢复时候发送
SIGTRAP 实现相关的硬件异常。一般是调试异常
SIGTSTP Suspend Key,一般是Ctrl+Z。发送给所有Foreground Group的进程
SIGTTIN 当Background Group的进程尝试读取Terminal的时候发送
SIGTTOU 当Background Group的进程尝试写Terminal的时候发送
SIGURG 当out-of-band data接收的时候可能发送
SIGUSR1 用户自定义signal 1
SIGUSR2 用户自定义signal 2
SIGVTALRM setitimer函数设置的Virtual Interval Timer超时的时候
SIGWAITING Solaris Thread Library内部实现专用
SIGWINCH 当Terminal的窗口大小改变的时候,发送给Foreground Group的所有进程
SIGXCPU 当CPU时间限制超时的时候
SIGXFSZ 进程超过文件大小限制
SIGXRES Solaris专用,进程超过资源限制的时候发送

转载于:https://www.cnblogs.com/candycaicai/archive/2011/03/10/1979929.html

学习--unix信号相关推荐

  1. 学习Unix/Linux编程要学些什么

    最近利用空余时间看了一下<Unix/Linux编程实践教程>,原书名为:Understanding Unix/Linux Programming: A Guide to Theory an ...

  2. 学习Unix,可从事什么样的工作(1)《精通Unix下C语言与项目实践》读书笔记(3)...

    <精通Unix下C语言编程与项目实践>读书笔记(new) 文章试读 不拘一个遍程序系列:编程序不能一个脑袋钻到底,有时要学会变通,即所谓的曲线救国.一.二.三.四 职场规划:一些杂七杂八的 ...

  3. 机器学习处理信号分离_[学习笔记]使用机器学习和深度学习处理信号基础知识...

    参考学习:Signal Generation and Preprocessing 本人只是为了了解信号处理的基础知识而做的学习笔记,涉及深度可能不够,有理解错误的地方请大胆指出,感激不尽 一.信号生成 ...

  4. QT学习之②信号与槽,以及链接实现方法

    QT学习之②信号与槽 ~QQ:3020889729 ~小蔡 信号与槽的意义 信号与槽的实质(文字:举例) 信号与槽的工作(图解) 信号与槽的创建 信号的声明 槽函数的声明 槽函数的实现 (无重载)信号 ...

  5. CUMT学习日记——信号与系统之考试复习的记录

    CUMT学习日记--信号与系统之考试复习的记录 系列第一篇 计算机网络复习 系列第二篇 计算机组成原理复习 系列第三篇 微机原理与接口技术复习 系列第四篇 计算机操作系统复习 系列第五篇 数据库原理复 ...

  6. 【信号识别】基于matlab深度学习CNN信号调制分类【含Matlab源码 2066期】

    ⛄一.深度学习CNN信号调制分类概述 1 背景介绍 在通信信号处理领域, 特别是在非协作通信信号盲解调研究领域, 每时隙突发信号的调制方式不同, 必须进行信号的调制方式自动识别.信号的调制方式识别效果 ...

  7. 学习Unix编程应该看的书籍整理

    最近看到网上的一段关于Unix底层工作方面的评论,深以为然: ============================================================ 底层个人觉得有两 ...

  8. Unix信号详解(Signal的信号说明)

    signal信号机制是属于计算机异常处理机制中的一种. signal信号属于一种异步处理异常的机制之一. 类似于我们平常在命令行上对于死循环的程序,按下ctrl-z暂时挂起,ctrl-c程序终止,这些 ...

  9. UNIX再学习 -- 发送信号

    一.发送信号的方式 发送信号的方式有几种: 1.由键盘触发的信号(只能发送一些比较特殊的信号) SIGINT (2):ctrl+c  中断符 SIGQUIT (3):ctrl+\  退出符 SIGTS ...

最新文章

  1. CSS3 Filter的十种特效
  2. 白大脑比超级计算机还,和超级计算机相比,人类的大脑很弱吗
  3. 求指定范围内的所有素数C++代码实现
  4. 内存泄漏MobX State Tree_[译]iOS Crash Dump Analysis 错误的内存崩溃
  5. mysql数据库之事务与存储过程
  6. 让WKWebView支持NSURLProtocol
  7. C语言编程 简单展开扫雷游戏
  8. php soap详解,关于PHP+SOAP详解
  9. 脉脉就APP整改下架一事致歉:正积极排查 将尽快完成整改
  10. python3线程池爬虫_python3多线程爬虫中如何变量?
  11. css 下划线_css学习
  12. 匿存函数,内存函数,递归函数,二分法查找
  13. 操作系统PPT(持续更新)
  14. java程序开发的流程_Java程序开发流程(图文解说版)
  15. 4000元组装电脑配置清单2021 4000元台式电脑组装配置单
  16. javaWeb(b站狂神说)
  17. 【Linux】Linux文件锁
  18. 长平之战后的秦赵又一次决战——邯郸保卫战
  19. 2018.4.18华为在线笔试
  20. Ajax登录注册-----数据请求 交互

热门文章

  1. OpensAS2搭建+AS2证书制作+SSL证书导入(EDI)
  2. Linux 中 dlopen、dlsym、dlclose、dlerror函数
  3. iPhone XR 完美越狱 实操记录
  4. Flask学习笔记(四): Flask与数据库连接
  5. 计算机主板检测卡50,主板诊断卡怎么使用 主板诊断卡代码含义及处理方法
  6. 【csv文件转xml文件】Excel表格数据快速批量生成xml格式文件
  7. Egret实现显示对象放大缩小(Scale改变)锚点坐标(anchorOffset)对应改变
  8. 基于感知机的手写数字识别java实现
  9. 微信小程序_调用openAi搭建虚拟伙伴聊天
  10. C++ Reference: Standard C++ Library reference: C Library: cstdio: FILE