命名空间
变体
操作

sig_atomic_t

来自 cppreference.cn
< c‎ | 程序
定义于头文件 <signal.h>
typedef /* unspecified */ 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++ 文档 关于 sig_atomic_t