[linux] C语言Linux系统编程-捕获进程信号

typedef void( *sighandler_t)(int);

1.

2.

3.

sighandler_t signal(int signum,sighandler_t handler);

1.

2.

3.

implicit-function-declaration

sleep()

<div class="cnblogs_Highlighter">
<pre class="brush:objc;gutter:true;">#include <stdio.h>

include <signal.h>

include<unistd.h>

//申明一个自定义函数
void myHandler(int signum){
printf("捕获到信号 %d \n",signum);
}
int main(){
//定义一个函数指针,指向上面的函数
void(* handler)=myHandler;
//调用函数,传递参数int信号标号,传递函数指针
signal(SIGINT,handler);//捕获ctrl+c
signal(SIGTERM,handler);//捕获程序退出
while(1){
printf("进程运行中...\n");
sleep(1);
}
}

运行结果:

信号2是我ctrl+c  ,信号15是我kill 进程id  ,  但是当我kill -9 进程id时 , 使用signal(SIGKILL,handler) 信号不能被捕获

进程运行中...进程运行中...进程运行中...^C捕获到信号 2 进程运行中...进程运行中...进程运行中...捕获到信号 15

  

相关文章

/etc/sysctl.conf这个目录主要是配置一些系统信息,/etc/sys...
1.作用 useradd或adduser命令用来建立用户帐号和创建用户的起...
它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅...
不管是我们在安装软件还是监测软件的使用性能,我们都要随时...
装好Tomcat7后,发现除了本机能访问外界访问不了,岂有此理。...
修改防火墙配置需要修改 /etc/sysconfig/iptables 这个文件,...