# sig_atomic_t

< c‎ | program

定义于头文件 `<signal.h>` |  |
typedef /* unspecified */ sig_atomic_t; |  |

即使缺少信号所做的异步中断，亦能作为原子实体访问的整数类型。

### 示例

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

    volatile sig_atomic_t gSignalStatus = 0;

    void signal_handler(int signal)
    {
        gSignalStatus = signal;
    }

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

        printf("SignalValue:   %d\n", gSignalStatus);
        printf("Sending signal %d\n", SIGINT);
        raise(SIGINT);
        printf("SignalValue:   %d\n", gSignalStatus);
    }

可能的输出：

    SignalValue:   0
    Sending signal 2
    SignalValue:   2

### 引用

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

  - 7.14/2 Signal handling <signal.h> (p: 265)

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

  - 7.14/2 Signal handling <signal.h> (p: 246)

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

  - 4.7 SIGNAL HANDLING <signal.h>

### 参阅

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