非常教程

C参考手册

原子操作 | Atomic operations

atomic_flag_test_and_set

在头文件<stdatomic.h>中定义

_Bool atomic_flag_test_and_set(volatile atomic_flag * obj);

(1)

(自C11以来)

_Bool atomic_flag_test_and_set_explicit(volatile atomic_flag * obj,memory_order order);

(2)

(自C11以来)

原子上将atomic_flag指向的状态更改obj为set(true)并返回以前的值。第一个版本根据命令对内存进行访问memory_order_seq_cst,第二个版本根据内存访问内存访问order

参数是指向易失性原子标志的指针,以接受非易失性和易失性(例如内存映射I/O)原子标志的地址。

参数

obj

-

指向要修改的原子标记对象的指针

order

-

此操作的内存同步排序:所有值都是允许的

返回值

由原子标志所指的前一个值obj

参考

  • C11标准(ISO/IEC 9899:2011):
    • 7.17.8.1 atomic_flag_test_and_set函数(p: 285-286)

另请参阅

atomic_flag_clearatomic_flag_clear_explicit(C11)

将atomic_flag设置为false(函数)

| atomic_flag_test_and_set,atomic_flag_test_and_set_explicit |的C ++文档

C

C 语言是一门通用计算机编程语言,应用广泛。C 语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。