没有合适的资源?快使用搜索试试~ 我知道了~
UNIX高级环境编程-.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 60 浏览量
2022-06-09
16:12:33
上传
评论
收藏 156KB DOC 举报
温馨提示
试读
13页
UNIX高级环境编程-.doc
资源推荐
资源详情
资源评论
UNIX 高级环境编-10Time:2007-10-28
:信号的实质
软件中断
:信号的值
每种信号都被定义为一个正值
没有一种信号的值是
值,被定义成一种特殊的信号 – 空信号
:产生信号的种类
当用户按某些键时,会产生信号,例如在终端按键 产生终端信号
硬件产生的信号:例如 作除数,内存访问越界
用 函数发送的信号
用户用 命令将信号发送给其他进程
当检测到某个软件条件已经具备时,则发送信号给相应进程
:硬件信号相关
硬件异常一般由硬件检测到
硬件检测到后,通知内核
内核给相应的进程发送相应的信号(例如:终止信号)
:系统对信号的三种处理方式
忽略此信号,大多数信号都采用此种方式
按照系统默认处理,一般都是终止进程
捕捉信号,执行特定的函数
:详解信号
:调用 函数时产生此信号 进程异常终止
! :超过用 " 函数设置的时间时产生此信号
# :指示一个实现定义的硬件故障
$% :当一个进程终止或者停止时,$% 信号被送给其父进程。按
照系统
默认,将忽略此信号。如果不想忽略此信号,则应该用 & 或者
&'(
函数来捕捉该信号
$) :作业控制信号,传送给处理停止状态但是需要继续运行的进程,如
果
接受到此信号的进程处于停止状态,则继续运行。否则默认动作是忽略
*! :指示一个实现定义的硬件故障
+,-* :此信号表示出现一个算术运算异常,例如: 作除数,浮点溢出
.%#- :如果终端界面检测到一个连接断开,则将此信号送给与该终端相关
的
控制进程(对话期首进程)
/ :此信号指示已执行一个非法硬件指令
:但用户按终端键(一般采用 ( 或 $0$),产生此信号
) :此信号指示一个异步 1) 事件
) :指示一个实现定义的硬件故障
:终止信号,是两个不能忽略信号之一,向管理员提供了终止某进程
的
UNIX 高级环境编-10Time:2007-10-28
可靠方法
--* :如果在读进程已经终止时些管道,则产生此信号
-2 :关于不间断电源(#-)的一种信号
3# :当用户在终端上按退出键时,产生此信号,并送至前台进程组中的
所有
进程
+)- :作业控制信号,停止一个进程,此信号也不能被忽略
.4 :指示一个无效的系统调用
/*! :这是有 命令发送的系统默认终止信号
- :指示一个实现的硬件故障
- :交互停止信号,当用户在终端上按挂起键时,终端驱动程序产生此
信号
:当一个后台进程试图读控制终端时,终端驱动程序产生此信号
)# :当一个后台进程试图写控制终端时,终端驱动程序产生此信号
# :此信号通知进程已经发生了一个紧急情况,例如,在网络通信中,
接到
非规定波特率的数据时,此信号可选择性的产生
# :这是用户自定义的信号,可用于应用程序
# :这是用户自定义的信号,可用于应用程序
+:算术异常举例
处以
浮点溢出
.:两个不能忽略的信号
)-
5555555
这样提供了可以终止进程的安全手段
/:#-
不间断电源供电系统
:678 函数
函数原型 : 9(:6788678;9(:<=888
头文件 : >8?=(@678AB
作用 : 注册某一信号到特定处理函数
参数 :
678 :要注册的信号
9(:<=88 :处理函数
返回值 : 9(:,返回以前此信号的处理函数的地址
:678 函数中第二参数值的情况
C : 表示忽略此信号
C, : 表示按照系统的默认方式处理
9(D : 指出处理函数的地址
:C*;C 和 C, 的定义
UNIX 高级环境编-10Time:2007-10-28
>(E8C 9(:8
>(E8C, 9(:8
>(E8C* 9(:8F
:信号处理程序示例
>8?=(@6(AB
>8?=(@678AB
9("GC6788H
8"8
I
<678#;"GC678C*
'8<J*??=(&B8??B87#K8K8LH
6
'8<J#B6876(MK8K8LH
<678#;"GC678C*
'8<J*??=(&B8??B87#K8K8LH
6
'8<J#B6876(MK8K8LH
&BH
=8H
N
9("GC6788678
I
<678#
'8<J?9(678O#K8K8LH
6<678#
'8<J?9(687O#K8K8LH
6
'8<JMK8K8LH
=8H
N
1:FFFFFFFFFFFFFFF操作过程FFFFFFFFFFFFFFFFFF:1
:为什么当程序后台执行时,不会对中止键(例如:$0$)反应?
当程序变为后台程序时,系统会设置忽略中止信号,这样当按下中止键时,不会影响到
剩余12页未读,继续阅读
资源评论
qq_53178901
- 粉丝: 0
- 资源: 1583
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Screenshot_20240427_031602.jpg
- 网页PDF_2024年04月26日 23-46-14_QQ浏览器网页保存_QQ浏览器转格式(6).docx
- 直接插入排序,冒泡排序,直接选择排序.zip
- 在排序2的基础上,再次对快排进行优化,其次增加快排非递归,归并排序,归并排序非递归版.zip
- 实现了7种排序算法.三种复杂度排序.三种nlogn复杂度排序(堆排序,归并排序,快速排序)一种线性复杂度的排序.zip
- 冒泡排序 直接选择排序 直接插入排序 随机快速排序 归并排序 堆排序.zip
- 课设-内部排序算法比较 包括冒泡排序、直接插入排序、简单选择排序、快速排序、希尔排序、归并排序和堆排序.zip
- Python排序算法.zip
- C语言实现直接插入排序、希尔排序、选择排序、冒泡排序、堆排序、快速排序、归并排序、计数排序,并带图详解.zip
- 常用工具集参考用于图像等数据处理
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功