《APUE》读书笔记—第十章信号(上)
来源:互联网 发布:招魂类似的电影知乎 编辑:程序博客网 时间:2024/05/16 07:47
信号时软中断,很多比较重要的应用程序都需要处理信号,信号提供了一种处理异步事件的方法。每个信号都一个名字,以SIG开头,在<signal.h>头文件中定义信号类型,都是正整数(信号编号)。
产生信号的条件:
(1)当用户按某些终端键时,引发终端产生的信号。
(2)硬件异常产生信号。
(3)进程调用kill函数将信号发送给另外一个进程或进程组。
(4)用户用kill命令将信号发送给其他进程。
(5)检测到某种软件条件已经发送,并将其通知有关进程时候产生信号。
内核在信号出现时候处理方式有:(1)忽略此信号,(2)铺捉信号,(3)执行系统默认动作。
Unix系统信号如下:
其中SIGKILL和SIGSTOP信号时不能忽略和捕获的,执行默认动作。
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专用,进程超过资源限制的时候发送
- 《APUE》读书笔记—第十章信号(上)
- APUE读书笔记-第十章 信号 (二)
- APUE读书笔记-第十章 信号
- APUE读书笔记-第十章-信号
- [APUE]第十章 信号
- APUE(第十章)信号
- APUE第十章 信号
- apue学习第十六天——信号(第十章)
- apue学习笔记(第十章 信号)
- apue-第十章 信号 笔记
- 《APUE》笔记-第十章-信号
- APUE学习笔记——第十章 信号
- APUE读书笔记-第10章 信号
- APUE读书笔记---第10章 信号
- APUE,TLPI读书笔记——信号
- apue学习第十九天(2)——线程与信号
- APUE——信号
- APUE--信号(4)
- Android listview+SwipeRefreshLayout 下拉刷新,上拉加载.
- 分裂器
- 33. Search in Rotated Sorted Array Medium
- C 入门语言
- 基本数据类型对象包装类
- 《APUE》读书笔记—第十章信号(上)
- WPE & LOD(应力效应)
- gdb调试命令
- xcode 编译提速
- android studio 中出现 Instant Run requires 'Tools | Android | Enable ADB integration' to be enabled.
- php 图片批量加水印
- svn提交或更新代码选择性设置后缀类型的文件或文件夹不需要资源同步更新
- android之存储篇_SQLite数据库_让你彻底学会SQLite的使用
- Java传递音频给PC端C#程序<二>