#include <sys/types.h>
#include <signal.h>
int kill(pid_t pid, int sig);
- 功能: 给某个进程pid, 发送某个信号sig
- 参数:
- pid:
>0: 将信号发送给指定的进程
=0: 将信号发送给当前的进程组
=-1: 将信号发送给每一个有权接收这个信号的进程
<-1: 这个pid=某个进程组的ID取反 (-12345)
-sig: 需要发送的信号的编号或者是宏值, 0表示不发送任何信号
kill(getppid(), 9);
kill(getpid(), 9);
int raise(int sig);
- 功能: 给当前进程发送信号
- 参数:
- sig: 要发送的信号
- 返回值:
- 成功 0
- 失败 非0
kill(getpid(), sig);
void abort(void);
- 功能: 发送SIGABRT信号给当前进程, 杀死当前进程
kill(getpid(), SIGABRT);
kill.c
#include <stdio.h>
#include <sys/types.h>
#include <signal.h>
#include <unistd.h>
int main(int argc, char const *argv[])
{
pid_t pid = fork();
if (pid == 0)
{
//子进程
int i = 0;
for (i = 0; i < 5; i++)
{
printf("child process\n");
sleep(1);
}
}
else if (pid > 0)
{
//父进程
printf("parent process\n");
sleep(2);
printf("kill child process now\n");
kill(pid, SIGINT);
}
return 0;
}
运行
$./kill
parent process
child process
child process
kill child process now
标签:13,raise,int,pid,process,abort,kill,进程,include
From: https://www.cnblogs.com/anqwjoe/p/17409741.html