信号产生方式
- 通过终端按键产生。 如ctrl+c 终止进程
- 通过系统函数向进程发送信号。如
kill()
函数,给指定进程发送信号。 - 有软件条件产生信号。如
alarm()
函数,设定一个闹钟信号。 - 硬件异常。如内存越界,除0异常。
利用kill()函数实现自己的kill 命令
// 发送信号给进程
#include <sys/types.h>
#include <signal.h>
int kill(pid_t pid, int sig);
先写一个死循环程序test并在后台跑起来
//test.c
#include <stdio.h>
int main()
{
while(1);
return 0;
}
这是利用kill 函数实现的mykill:
#include <stdio.h>
#include <signal.h>
#include <sys/types.h>
#include <unistd.h>
#include <stdlib.h>
int main( int argc, char** argv)
{
if(argc != 1)
{
printf("parameter error.\n");
exit(1);
}
// 获取pid
pid_t pid = atoi(argv[1]);
kill(pid, SIGKILL);
return 0;
}