Linux Signal (3): kill和raise

原创 2007年09月24日 16:23:00

1. 函数说明:

kill和raise是用来发送信号的:

kill把信号发送给进程或进程组;

raise把信号发送给(进程)自身.

他们的原型如下:

#include <signal.h>

int kill(pid_t pid, int signo);
int raise(int
 signo);

成功则返回0, 出错则返回
-1

 从原型上可以看出, raise函数是可以通过kill实现的.

raise(signo);

等价于:

kill(getpid(), signo);

2. pid参数:

kill函数中的pid参数, 它有以下4种情况:

  • pid > 0: 将该信号发送给进程ID为pid的进程.
  • pid == 0: 将该信号发送给与发送进程属于同一进程组的所有进程(不包括内核进程和init进程). 此时, 发送进程必须具有向这些进程发送信号的权限.
  • pid < 0: 将该信号发给其进程组ID等于pid绝对值的所有进程(不包括内核进程和init进程). 此时, 发送进程必须具有向这些进程发送信号的权限.
  • pid == -1: 将该信号发送给发送进程有权限向它们发送信号的系统上的所有进程.(不包括内核进程和init进程).

3. signo参数:

POSIX.1将编号为0的信号定义为空信号. 如果signo参数是0, 则kill仍执行正常的错误检查, 但不发送信号. 这被用来确定一个进程是否存在.

内存不足引起的SIGKILL:一个缓冲区不断增长问题的定位与解决

http://www.cnblogs.com/chutianyao/archive/2011/10/27/2226091.html 新版本的录制程序终于快完工了,在添加了一个...
  • yangruibao
  • yangruibao
  • 2013年04月09日 17:14
  • 5657

Linux kill函数及信号列表

KILL函数 kill(传送信号给指定的进程) 相关函数 raise,signal 表头文件 #include #include 定义函数 int kill(pid_t pid,int ...
  • lanmolei814
  • lanmolei814
  • 2014年05月16日 16:14
  • 3130

Linux Signal及Golang中的信号处理

http://colobu.com/2015/10/09/Linux-Signals/ 信号(Signal)是Linux, 类Unix和其它POSIX兼容的操作系统中用来进程间通讯的...
  • leonpengweicn
  • leonpengweicn
  • 2016年08月05日 17:43
  • 1875

linux进程通信---几个发送信号的函数(kill,raise,alarm,pause)

http://blog.csdn.net/zzyoucan/article/details/9235685 信号:信号是unix中最古老的进程通信的一种方式,他是软件层次上对中断机制的模...
  • sinat_35297665
  • sinat_35297665
  • 2017年12月28日 14:30
  • 18

linux进程通信---几个发送信号的函数(kill,raise,alarm,pause)

信号:信号是unix中最古老的进程通信的一种方式,他是软件层次上对中断机制的模拟,是一种异步通信方式,信号可以实现用户空间进程和内核空间进程的交互,内核进程可以利用他通知用户空间进程发生了哪些系统事件...
  • Lina_ACM
  • Lina_ACM
  • 2016年05月27日 10:39
  • 233

linux进程通信---几个发送信号的函数(kill,raise,alarm,pause)

信号:信号是unix中最古老的进程通信的一种方式,他是软件层次上对中断机制的模拟,是一种异步通信方式,信号可以实现用户空间进程和内核空间进程的交互,内核进程可以利用他通知用户空间进程发生了哪些系统事件...
  • youwuwei2012
  • youwuwei2012
  • 2014年05月13日 10:43
  • 413

[Linux C编程]信号发送捕捉kill() raise() alarm() pause()

信号概述 ● 信号是在软件层次上对中断机制的一种模拟。在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。 ● 信号是异步的,一个进程不必通过任何操作来等待信号的到达...
  • wzhCAlex
  • wzhCAlex
  • 2016年10月28日 22:19
  • 680

玩玩linux下的kill、raise函数

之前说过kill命令, 我们也知道了, kill命名并没有杀死的意思, 而仅仅是发送信号, 今天, 我们继续学习它的函数形式。 raise这个单词的意思太多, 其中的一个意思是提出、抛出、发出, 实际...
  • stpeace
  • stpeace
  • 2015年04月29日 22:04
  • 3721

Linux进程间通信(四)---信号通信之信号发送捕捉kill()、raise()、alarm()、pause()及其基础实验

信号概述    ●  信号是在软件层次上对中断机制的一种模拟。在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。    ●  信号是异步的,一个进程不必通过任何操作来等待信号的...
  • mybelief321
  • mybelief321
  • 2013年06月12日 11:17
  • 7826

linux系统编程之信号(三):信号安装、signal、kill,arise讲解

一,信号安装 如果进程要处理某一信号,那么就要在进程中安装该信号。安装信号主要用来确定信号值及进程针对该信号值的动作之间的映射关系,即进程将要处理哪个信号;该信号被传递给进程时,将执行何种操作。 ...
  • gmq_syy
  • gmq_syy
  • 2017年06月27日 15:53
  • 133
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Linux Signal (3): kill和raise
举报原因:
原因补充:

(最多只允许输入30个字)