# raise

< c‎ | program

定义于头文件 `<signal.h>` |  |
int raise( int sig ); |  |

发送 `sig` 给程序。调用以 signal() 指定的信号处理函数。

若仍未用 signal() 设置用户定义的信号处理策略，则忽略信号还是调用默认处理函数是实现定义的。

### 参数

sig | - | 要发送的信号。能为实现定义值或下列值之一：
SIGABRT SIGFPE SIGILL SIGINT SIGSEGV SIGTERM | 定义信号类型 (宏常量)

### 返回值

成功时为 ​0​ ，失败时为非零。

### 示例

    #include <signal.h>
    #include <stdio.h>

    void signal_handler(int signal)
    {
        printf("Received signal %d\n", signal);
    }

    int main(void)
    {
        // 安装信号处理函数。
        signal(SIGTERM, signal_handler);

        printf("Sending signal %d\n", SIGTERM);
        raise(SIGTERM);
        printf("Exit main()\n");
    }

输出：

    Sending signal 15
    Received signal 15
    Exit main()

### 引用

- C11 标准（ISO/IEC 9899:2011）：

  - 7.14.2.1 The raise function (p: 267)

- C99 标准（ISO/IEC 9899:1999）：

  - 7.14.2.1 The raise function (p: 248)

- C89/C90 标准（ISO/IEC 9899:1990）：

  - 4.7.2.1 The raise function

### 参阅

signal | 为特定的信号设置信号处理函数 (函数)