當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。