信号编程
参考原文地址:https://www.jianshu.com/p/f445bfeea40a
通过命令 :kill -l 来查看信号的名字和编号 如下:
其中每个信号名字的前面都是其编号

信号函数的函数原型是这样的
sighandler_t signal(int signum, sighandler_t handler); 返回值类型 函数名字 整型函数编号 调用的函数
下面是一个老师的demo
#include <signal.h>
#include <stdio.h>
//typedef void (*sighandler_t)(int);
// sighandler_t signal(int signum, sighandler_t handler);
void hander(int signum)
{
printf("get signum =%d\n",signum);
printf("never quit\n");
switch(signum)
{
case 2:
printf("SIGINT\n");
break;
case 9:
printf("SIGKILL\n");
break;
case 10:
printf("SIGUSR1\n");
break;
}
}
int main()
{
signal(SIGINT,hander);
signal (SIGKILL,hander);
signal (SIGUSR1,hander);
while(1);
return 0;
}

编译后并执行后,由于while程序卡住了,进程不会结束,可以通过 命令:
ps -aux |grep ./aout
结果:

我这里的可执行问件事 jc
左边开始的第一串数字是进程的pid号码,要是要结束该进程 用过命令
1 kill -(signum) (pid) 2 号码 pid号码
Hang in there,I wish you a bright future.

浙公网安备 33010602011771号