当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C++ raise()用法及代码示例


C++ 中的raise() 函数向程序发送信号。

raise() 原型

int raise( int sig );

raise 函数调用信号处理程序。如果没有为信号处理设置用户定义的函数,则由实现定义是忽略信号还是调用默认处理程序。

它在<csignal> 头文件中定义。

参数:

sig :要发送处理的信号。它可以采用以下值之一:

  • SIGABRT
  • SIGFPE
  • SIGILL
  • SIGINT
  • SIGSEGV
  • SIGTERM

返回:

成功时返回零,失败时返回非零。

示例:raise() 函数的工作原理

#include <iostream>
#include <csignal>
 
using namespace std;

sig_atomic_t sig_value = 0;

void handler(int sig)
{
    sig_value = sig;
}

int main()
{
    signal(SIGABRT, handler);
    cout << "Before signal handler is called" << endl;
    cout << "Signal = " << sig_value << endl; 
    raise(SIGABRT);
    cout << "After signal handler is called" << endl;
    cout << "Signal = " << sig_value << endl;

    return 0;
}

运行程序时,输出将是:

Before signal handler is called
Signal = 0
After signal handler is called
Signal = 6

相关用法


注:本文由纯净天空筛选整理自 C++ raise()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。