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仍执行正常的错误检查, 但不发送信号. 这被用来确定一个进程是否存在.

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

信号操作sigsuspend

信号

linux signal 详解

一 信号的种类 可靠信号与不可靠信号, 实时信号与非实时信号 可靠信号就是实时信号, 那些从UNIX系统继承过来的信号都是非可靠信号, 表现在信号 不支持排队,信号可能会丢失, 比如...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

【Linux函数】Signal ()函数详细介绍

1. 功能设置某一信号的对应动作2. 声明#include typedef void (*sighandler_t)(int); sighandler_t signal(int signum, si...
  • yockie
  • yockie
  • 2016-06-21 19:49
  • 7926

Linux下的signal信号机制

在Linux中,要发送一个信号相当容易。程序员需要知道两个信息:要发送哪个信号,将这个信号发送给哪个进程。可以用 man 7 signal 找到一个可以利用的信号的列表。用户可以只将信号发送给用户自己...

Linux Signal (5): 信号集

信号集给我们提供了一个能表示多个信号的是数据类型(sigset_t), 它将在sigprocmask, sigpending, sigsuspend之类的函数中用到, 这些函数我会在以后的文章中介绍....

Linux Signal (2): signal函数

1. 原型:#include signal.h>void (*signal(int signo, void (*func)(int))(int);成功则返回该信号以前的处理配置, 出错则返回SIG_E...

Linux Signal (1): 基本概念

1. 信号是软件中断:信号提供了一种处理异步事件的方法. 每个信号都有一个名字, 他们以SIG开头, 如SIGALRM是闹钟信号, 当由alarm函数设置的计时器超时后产生此信号, 然后由SIGALR...

Linux Signal (4): alarm和pause

1. alarm函数:alarm函数是设置一个计时器, 在计时器超时的时候, 产生SIGALRM信号. 如果不忽略或捕捉此信号, 它的默认操作是终止调用该alarm函数的进程.原型如下:#includ...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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