当前位置: 首页 > news >正文

[C++ 学习] 控制信号

//
// Created by ubuntu on 9/6/23.
//
#include<iostream>
#include<unistd.h>
#include <signal.h>using namespace std;
void EXIT(int sig){cout << "收到了信号:" << sig << endl;cout << "正在释放资源" << endl;cout << "释放资源完成,程序将退出" << endl;cout << "程序退出!" << endl;exit(0);
}
int main(int argc, char *argv[]) {for (int i = 0; i < 64; ++i) {//设置成默认忽略信号,防止进程被误杀或者其它干扰signal(i, SIG_IGN);}// 若收到了 2 ctl+c 或15 (kill, killall)则退出signal(2,EXIT);signal(15,EXIT);while(true){cout << "程序执行中..." << endl;sleep(1);}return 0;
}

signal在头文件 singnal.h 中,可以用man 来查看。
这里用到了回调, killall -2 进程名 或者进程号 就可以做到 进程间的信号传递。
默认行为, 用singnal可以改变默认行为。

http://www.lryc.cn/news/162486.html

相关文章:

  • php如何设置随机数
  • WebGL 纹理——在矩形表面贴上图像
  • javaweb-Filter-listener过滤器与监听器
  • DBeaver 常用快捷键【大全】
  • 数据分析之面试题目汇总
  • 【Vue-Element-Admin】级联查询
  • 深入探讨Kubernetes(K8s)在云原生架构中的关键作用和应用
  • redis zset score 求和
  • springboot属性注入增强(一)背景/需求
  • 《PWA实战:如何为你的网站增加离线功能和推送通知》
  • sqli-labs关卡之一(两种做法)
  • Visual Studio 线性表的链式存储节点输出引发异常:读取访问权限冲突
  • [通用]计算机经典面试题基础篇Day3
  • (Golang) 牛客 在线编程 Go语言入门
  • 2.6 PE结构:导出表详细解析
  • SpringMvc进阶
  • SpringCloud Alibaba 入门到精通 - Nacos
  • new/delete, malloc/free
  • oracle将一个用户的表复制到另一个用户
  • C#知识点、常见面试题
  • 【STM32】锁存器
  • DGIOT-Modbus-RTU控制指令05、06的配置与下发
  • 机器学习实战-系列教程8:SVM分类实战3非线性SVM(鸢尾花数据集/软间隔/线性SVM/非线性SVM/scikit-learn框架)项目实战、代码解读
  • 计算机网络-谢希任第八版学习笔记总结
  • 手写Spring:第5章-注入属性和依赖对象
  • 初识集合框架 -Java
  • 目标检测笔记(十五): 使用YOLOX完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
  • 深眸科技自研轻辙视觉引擎,以AI机器视觉赋能杆号牌识别与分拣
  • Shell命令管理进程
  • python创建exe文件