命名空间
变体
操作

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 status)
{
    gSignalStatus = status;
}
 
int main(void)
{
    /* Install a signal handler. */
    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.h> (p: 194-195)
  • C11 标准 (ISO/IEC 9899:2011)
  • 7.14/2 信号处理 <signal.h> (p: 265)
  • C99 标准 (ISO/IEC 9899:1999)
  • 7.14/2 信号处理 <signal.h> (p: 246)
  • C89/C90 标准 (ISO/IEC 9899:1990)
  • 4.7 信号处理 <signal.h>

[编辑] 另请参阅

为特定信号设置信号处理程序
(函数) [编辑]
C++ 文档 for sig_atomic_t