raise
函数 <csignal>
int raise (int sig);
生成一个信号
发送信号sig 到当前执行的程序
信号按照函数
signal的规定进行处理。
☲ 参数
sig
被设置处理函数的信号值。下面的宏常量表达式可以识别标准信号值:
宏 |
信号 |
SIGABRT |
(信号中止)异常终止,比如由中止(abort)函数发起。 |
SIGFPE |
(浮点异常信号)错误的算术运算,例如除零或导致溢出的运算(不一定是浮点运算)。 |
SIGILL |
(非法指令信号)无效的函数图像,如非法指令。这通常是由于代码损坏或试图执行数据。 |
SIGINT |
(信号中断)交互注意信号。通常由应用程序用户生成。 |
SIGSEGV |
(段错误信号)对存储的无效访问:当一个程序试图在它已经分配的内存之外读取或写入。 |
SIGTERM |
(信号终止)发送到程序的终止请求。 |
每个库实现都可能提供附加的信号值宏常量,可用于此函数。
☉ 返回值
如果成功则返回零,否则返回一个不同于零的值。
↭ 数据竞争
并发地调用这个函数是安全的,不会导致数据竞争。
注意,它的处理过程可能会影响所有线程。
➤ 异常(C++)
如果没有定义带有信号的函数处理程序来处理抛出的信号,则函数永远不会抛出异常
(no-throw保证)。
否则,行为取决于特定的库实现。
🍄 另请参阅