📄 kill.c
字号:
/*kill.c*/
#include <sys/types.h>
#include <sys/wait.h>
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
main(void)
{
pid_t pid;
int ret;
/*创建一子进程*/
if((pid=fork())<0){
perror("fork");
exit(1);
}
if(pid == 0){
/*在子进程中使用raise函数发出SIGSTOP信号*/
raise(SIGSTOP);//int raise(int sig)(传送信号给指定的进程)
exit(0);
}
else{
/*在父进程中收集子进程发出的信号,并调用kill函数进行相应的操作*/
printf("pid=%d\n",pid);
if((waitpid(pid,NULL,WNOHANG))==0) //waitpid(等待子进程中断或结束)
{
if((ret=kill(pid,SIGKILL))==0) //SIGKILL:该信号用来立即结束程序的运行,
//并且不能被阻塞、处理和忽略。
//kill(),可以用来送参数sig指定的信号给参数pid指定的进程
printf("kill %d\n",pid);
else{
perror("kill");
}
}
}
}
程序运行结果:
[root@tmp]# ./kill
pid=78
kill 78
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -