一 点睛
#include<sys/types.h>
#include<signal.h>
int kill(pid_t pid,int sig);
函数说明
kill()可以用来送参数sig指定的信号给参数pid指定的进程。
参数pid有几种情况:
-
pid>0 将信号传给进程识别码为pid的进程。
-
pid=0 将信号传给和目前进程相同进程组的所有进程
-
pid=-1 将信号广播传送给系统内所有的进程
-
pid<0 将信号传给进程组识别码为pid绝对值的所有进程
参数sig表示准备发送的信号代码,如果其值为零,则没有任何信号发出,但是系统会执行错误检查,通常会利用sig值为0来检验某个进程是否仍在执行。
返回值 执行成功则返回0,如果有错误则返回-1。此时errno可以得到错误码。
错误代码说明
-
EINVAL 参数sig 不合法
-
ESRCH 参数pid 所指定的进程或进程组不存在
-
EPERM 权限不够无法传送信号给指定进程
二 代码
#include <sys/wait.h>
#include <sys/types.h>
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <unistd.h>
int main(void)
{
pid_t chi