C++信号处理

信号是操作系统传给进程的中断,会提早终止一个程序;

  有些信号不能被捕获,下面的信号在程序中可被捕获,基于信号可采取适当的动作;

  这些信号定义在C++头文件<csignal>中;

SIGABRT:程序的异常终止,如abort;

SIGFPE:   错误的算术运算,如除以0导致的溢出;

SIGILL:     检测非法指令;

SIGINT:    接收到交互注意信号;

SIGSEGV:非法访问内存;

SIGTERM:发送到程序的终止请求。

 

signal() 函数  : 用于捕获突发事件;

  void  (*signal ( int sig ,void (*func) (int) ) ) (int);

  接收2个参数:第一个是一个整数,代表了信号的编号;第二个参数是一个指向信号处理函数的指针;

  在程序中不管捕获什么信号,都必须使用 signal 函数来注册信号,将其与信号处理程序相关联;

 

 

raise() 函数 :生成信号;

  int raise(signal sig);   // 该函数带有一个整数信号编号作为参数

  sig 是要发送的信号的编号,包括:SIGINT、SIGABRT、SIGFPE、SIGILL、SIGEGV、SIGTERM、SIGHUB;

 

转载于:https://www.cnblogs.com/ll9207/p/7266232.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值