C++学习笔记(10)-信号处理&多线程
来源:互联网 发布:淘宝详情页上面 编辑:程序博客网 时间:2024/05/16 18:38
信号处理
C++信号处理主要用来捕捉系统产生的异常信号之后进行处理,它的头文件是 #include <csignal>
C++主要是靠signal()函数来捕获异常信号,signal()函数能够捕获的异常信号包括如下信号:
C++ 信号处理库提供了 signal 函数,用来捕获突发事件。以下是 signal() 函数的语法: void (*signal (int sig, void (*function)(int)))(int);
注意function函数的传入参数是int类型的
例子
#include <iostream>#include <csignal>using namespace std;void chuli(int signum){ cout << "已捕捉到信号(" << signum << ") received.\n"; exit(signum);}int main(){ // 注册信号 SIGINT 和信号处理程序 SIGINT信号不能够换成其他的,不然CTRL+C程序无法捕捉 signal(SIGINT, chuli); while (1) { cout << "hello" << endl; } return 0;}
结果
hellohellohellohellohellohellohello已捕捉到信号(2) received.
可以使用 raise(SIG) 生成一个信号,
int raise (signal sig); //其中的sig可以是上述表格中的任何一个
例子:
#include <iostream>#include <csignal>using namespace std;void chuli(int signum){ cout << "已捕捉到信号(" << signum << ") received.\n"; exit(signum);}void chuli2(int signum){ cout << "已捕捉到信号ILL(" << signum << ") received.\n"; exit(signum);}int main(){ int a=1; // 注册信号 SIGINT 和信号处理程序 signal(SIGINT, chuli); signal(SIGILL, chuli2); while (a++) { cout << "hello" << endl; if(a == 5) raise(SIGILL); } return 0;}
结果:
hellohellohellohello已捕捉到信号ILL(4) received.
阅读全文
0 0
- C++学习笔记(10)-信号处理&多线程
- 学习笔记之信号及信号处理------linux c
- 信号处理 学习笔记
- Unix信号处理学习笔记
- Unix信号处理学习笔记
- 《语音信号处理》学习笔记
- 信号处理学习笔记一
- C语言信号学习笔记
- C++ 学习笔记(六):高级编程:模板,预处理器,信号处理,多线程,Web编程
- 信号处理学习笔记之自适应滤波器
- 信号学习笔记3--信号的阻塞处理
- 信号处理学习笔记(二)Decimation信号抽取
- linux多线程信号处理
- linux多线程信号处理
- 从Ctrl-C看Python多线程的信号处理
- 多线程信号学习
- Linux C 信号处理
- Linux C 信号处理
- 999-eclipse-occurences-02
- MySQL数据高级查询之连接查询、联合查询、子查询
- bzoj1026: [SCOI2009]windy数 数位dp
- java生成复杂嵌套Json
- php 实现进制相互转换
- C++学习笔记(10)-信号处理&多线程
- window安装解压版MySQL
- SVM的传奇故事——SVM知识点总结
- web学习引索
- Qt调用Halcon13.0机器视觉算法包
- 咪咕天气总结
- Android定义亮屏、灭屏、锁屏、退出应用监听器
- Maven 项目打包成可执行Jar文件
- iptables CLUSTERIP构建独特的负载均衡集群