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()用法及代码示例
- C++ ratio_less_equal()用法及代码示例
- C++ ratio_less()用法及代码示例
- C++ ratio_greater()用法及代码示例
- C++ ratio_not_equal()用法及代码示例
- C++ ratio_greater_equal()用法及代码示例
- C++ ratio_equal()用法及代码示例
- C++ rint(), rintf(), rintl()用法及代码示例
- C++ regex_iterator()用法及代码示例
- C++ rotate用法及代码示例
- C++ remainder()用法及代码示例
- C++ remquo()用法及代码示例
- C++ rename()用法及代码示例
- C++ rint()用法及代码示例
- C++ rewind()用法及代码示例
- C++ round()用法及代码示例
- C++ remove()用法及代码示例
- C++ realloc()用法及代码示例
- C++ rename用法及代码示例
- C++ real()用法及代码示例
注:本文由纯净天空筛选整理自 C++ raise()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。