Prayer

在一般中寻求卓越
posts - 1256, comments - 190, trackbacks - 0, articles - 0
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

kill和raise

Posted on 2008-08-21 19:30 Prayer 阅读(435) 评论(0)  编辑 收藏 引用 所属分类: LINUX/UNIX/AIX

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


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理