sig_atomic_t

来自cppreference.com
< 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>

[编辑] 参阅

为特定的信号设置信号处理函数
(函数) [edit]
sig_atomic_tC++文档