函数
<csignal>

raise

int raise (int sig);
产生一个信号
向当前执行的程序发送信号 sig

信号将按照 signal 函数的指定进行处理。

参数

sig
要发出的信号值。以下宏常量表达式标识了标准信号值

signal
SIGABRT(Signal Abort) 异常终止,例如由 abort 函数发起的终止。
SIGFPE(Signal Floating-Point Exception) 错误的算术运算,例如除以零或导致溢出的运算(不一定与浮点运算有关)。
SIGILL(Signal Illegal Instruction) 无效的函数映像,例如非法指令。这通常是由于代码损坏或尝试执行数据所致。
SIGINT(Signal Interrupt) 交互式注意信号。通常由应用程序用户生成。
SIGSEGV(信号分段违规)对存储的无效访问:当程序试图在其分配的内存之外进行读写操作时。
SIGTERM(Signal Terminate) 发送给程序的终止请求。

每个库的实现可能会提供额外的信号值宏常量与此函数一起使用。

返回值

如果成功,返回零;否则,返回一个非零值。

数据竞争

并发调用此函数是安全的,不会导致数据竞争。
但请注意,其处理过程可能会影响所有线程。

异常 (C++)

如果没有使用 signal 定义函数处理程序来处理发出的信号,则该函数永远不会抛出异常(无抛出保证)。
否则,其行为取决于特定的库实现。

另见