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 standard (ISO/IEC 9899:2011):
  • 7.14/2 Signal handling <signal.h> (p: 265)
  • C99 standard (ISO/IEC 9899:1999):
  • 7.14/2 Signal handling <signal.h> (p: 246)
  • C89/C90 standard (ISO/IEC 9899:1990):
  • 4.7 SIGNAL HANDLING <signal.h>

参阅

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