[linux] C语言Linux系统编程-捕获进程信号
2023-02-18 15:47:31 时间
typedef void( *sighandler_t)(int);
1.用typedef给类型起一个别名。
2.为函数指针类型定义别名,
3.函数指针(指向函数的指针)
sighandler_t signal(int signum, sighandler_t handler);
1.函数原型
2.使用自定义的类型别名,作为函数参数和函数返回值
3.第一个参数是信号的标号,第二个参数是函数指针
implicit-function-declaration(不明函数声明)
sleep()函数在#include<unistd.h>这个头文件中
#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
相关文章
- 实践GoF的23种设计模式:命令模式
- 论文解读(LightGCN)《LightGCN: Simplifying and Powering Graph Convolution Network for Recommendation》
- 论文解读(Cluster-GCN)《Cluster-GCN: An Efficient Algorithm for Training Deep and Large Graph Convolutional Networks》
- Pytorch nn.BCEWithLogitsLoss() 的简单理解与用法
- 论文解读(GIN)《How Powerful are Graph Neural Networks》
- PowerBI 大赛-最具推广价值奖得主分享
- PowerBI 大赛-最佳展现创意奖得主分享
- Power BI 终极调试器 DAX Studio V3 发布
- 如何在 PowerBI 中设置数值标签的动态颜色
- PowerBI 中如何实现快速模糊查找
- PowerBI DAX 新函数 OFFSET
- PowerBI 抖动图,快速标记众多数值的分布
- PowerBI 中处理重复排名,展示TOPN
- Power Query 真经 - 第 10 章 - 横向合并数据
- 立刻免费下载 Power BI 初学者套件 Z-Start
- Power BI 可视化大赛冠军作品发布下载
- 如何三分钟震撼没用过 Power BI 的伙伴,让他彻底着迷
- Zebra BI 重大发布,与 Excel,PPT,Power BI 统一集成,一大壮举
- 如何在企业推广 Power BI,内建学习平台
- Power BI 原厂官方图标大全