signal的使用

2020-06-25  本文已影响0人  Then丶

(1). SIGABRT:程序异常中止,如调用abort函数。

(2). SIGFPE:算术运算出错,如除数为0或溢出。

(3). SIGILL:非法函数映像,如非法指令。

(4). SIGINT:交互的用户按键请求,如同时按下Ctrl+C键。

(5). SIGSEGV:无效内存访问,段错误。

(6). SIGTERM:程序的中止请求。

#include <csignal>
#include <iostream>
#include <unistd.h>
using namespace std;

void signum(int num)
{
    cout << "Signal: " << num << endl;

    exit(num);
}

int main(int argc, char **argv)
{
    signal(SIGINT, signum);

    int i;
    while(true)
    {
        cout << "Go To Sleep..." << endl;
        i++;

        if(i == 10)
        {
            raise(SIGINT); //raise reSIGINT
        }
        sleep(1);
    }

    return 0;
}
上一篇 下一篇

猜你喜欢

热点阅读