C++系列一:语言基础-杂烩2

发布时间 2023-08-14 11:53:09作者: cactus9

@

前言:

继续……

信号处理

  1. 信号是由操作系统传给进程的中断,会提早终止一个程序。
  2. 头文件 中。
SIGABRT	程序的异常终止,如调用 abort。
SIGFPE	错误的算术运算,比如除以零或导致溢出的操作。
SIGILL	检测非法指令。
SIGINT	程序终止(interrupt)信号。
SIGSEGV	非法访问内存。
SIGTERM	发送到程序的终止请求。 

#include <iostream>
#include <csignal>
#include <unistd.h>
using namespace std;
void signalHandler( int signum )
{
    cout << "中断信息("<<signum<<")";
    exit(signum); // 退出信息   
}
 
int main ()
{
    // 注册信号 SIGINT 和信号处理程序
    //CTRL+C中断
    signal(SIGINT, signalHandler);  
    while(1){
       cout << "test……" << endl;
       sleep(1);
    }
    //或者  raise() 生成信号
    while(++i){
    cout << "test……" << endl;
    if( i == 3 ){ raise( SIGINT);}
    sleep(1);
    }
    return 0;
}