Linux多进程13-kill,raise,abort函数
#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
本文作者:JoeのBLOG
本文链接:https://www.cnblogs.com/anqwjoe/p/17409741.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
2018-05-17 Vue.js 基础知识