Linux中_使用signal信号_详细介绍和说明

Linux 信号的详细介绍和举例说明

1. signal信号

1、signal信号是Linux编程中非常重要的部分,接下来将详细介绍信号的基本概念、实现和使用,和与信号的几个系统调用(库函数)。
2、signal信号是进程之间相互传递消息的一种方法,信号全称为软中断信号,也有人称作软中断,从它的命名可以看出,它的实质和使用很象中断。

2. 信号的基本概念

软中断信号(signal,又简称为信号)用来通知进程发生了事件。进程之间可以通过调用kill库函数发送软中断信号。Linux内核也可能给进程发送信号,通知进程发生了某个事件(例如内存越界)。
注意,信号只是用来通知某进程发生了什么事件,无法给进程传递任何数据,进程对信号的处理方法有三种:
1)第一种方法是,忽略某个信号,对该信号不做任何处理,就象未发生过一样。
2)第二种是设置中断的处理函数,收到信号后,由该函数来处理。
3)第三种方法是,对该信号的处理采用系统的默认操作,大部分的信号的默认操作是终止进程。

3. 信号的类型

发出信号的原因很多,这里按发出信号的原因简单分类,以了解各种信号:
信号名     信号值     默认处理动作      发出信号的原因

SIGHUP      1           A               终端挂起或者控制进程终止
SIGHUP      1           A               终端挂起或者控制进程终止

SIGINT      2           A               键盘中断Ctrl+c

SIGQUIT     3           C               键盘的退出键被按下

SIGILL      4           C               非法指令

SIGABRT     6           C               由abort(3)发出的退出指令

SIGFPE      8           C               浮点异常

SIGKILL     9           AEF             采用kill   -9 进程编号 强制杀死程序。

SIGSEGV     11          C               无效的内存引用

SIGPIPE     13          A               管道破裂:写一个没有读端口的管道  

SIGALRM     14          A               由alarm(2)发出的信号

SIGTERM     15          A               采用“kill   进程编号”或“killall 程序名”通知程序。

SIGUSR1     30,10,16    A               用户自定义信号1

SIGUSR2     31,12,17    A               用户自定义信号2

SIGCHLD     20,17,18    B               子进程结束信号

SIGCONT     19,18,25                    进程继续(曾被停止的进程)

SIGSTOP     17,19,23    DEF             终止进程

SIGTSTP     18,20,24    D               控制终端(tty)上按下停止键

SIGTTIN     21,21,26    D               后台进程企图从控制终端读

SIGTTOU     22,22,27    D               后台进程企图从控制终端写
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值