sig_atomic_t

来自cppreference.com
< c‎ | program


在标头 <signal.h> 定义
typedef /* 未指明 */ 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

引用

  • C17 标准(ISO/IEC 9899:2018):
  • 7.14/2 Signal handling <signal.h> (第 194-195 页)
  • C11 标准(ISO/IEC 9899:2011):
  • 7.14/2 Signal handling <signal.h> (第 265 页)
  • C99 标准(ISO/IEC 9899:1999):
  • 7.14/2 Signal handling <signal.h> (第 246 页)
  • C89/C90 标准(ISO/IEC 9899:1990):
  • 4.7 SIGNAL HANDLING <signal.h>

参阅

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