发送信号的函数kill和raise

2017-9-19 Plan C Linux

blog.kurukurumi.com原创,转载请注明出处。

E-mail:hubenchang0515@outlook.com


        Linux有两个函数可以发送信号分别是kill和raise,kill可以给任何进程发送信号,而raise将信号发送给当前进程。

#include <signal.h>

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

// 成功,返回0;出错,返回-1

        signo参数是信号编号,对于kill函数的pid参数,有一下4种情况:

pid > 0将信号发送给进程ID为pid的进程
pid == 0将信号发送给当前进程所属进程组的所有进程
pid == -1将信号发送给所有进程(不含无权限向其发送的进程)
pid < -1将信号发送给进程组ID为pid的绝对值的进程组的所有进程(不含无权限向其发送的进程)

        发送者的实际用户ID或有效用户ID必须等于接受者的实际用户ID或有效用户ID,否则无权限向其发送信号。


        信号编号0是一个空信号,以0为信号调用kil函数,kill函数正常执行错误检查但不发送信号,可以用来确定一个进程是否存在。

发表评论:

Powered by emlog
鄂ICP备16003833号