當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Rust AtomicU8.as_mut_ptr用法及代碼示例


本文簡要介紹rust語言中 std::sync::atomic::AtomicU8.as_mut_ptr 的用法。

用法

pub fn as_mut_ptr(&self) -> *mut u8

返回指向基礎整數的可變指針。

對結果整數進行非原子讀取和寫入可能是數據競爭。此方法對 FFI 非常有用,其中函數簽名可能使用 *mut u8 而不是 &AtomicU8

從共享引用返回 *mut 指針到該原子是安全的,因為原子類型具有內部可變性。原子的所有修改都會通過共享引用更改值,並且隻要使用原子操作就可以安全地進行更改。對返回的原始指針的任何使用都需要 unsafe 塊,並且仍然必須遵守相同的限製:對其的操作必須是原子的。

例子

use std::sync::atomic::AtomicU8;

extern "C" {
    fn my_atomic_op(arg: *mut u8);
}

let mut atomic = AtomicU8::new(1);

unsafe {
    my_atomic_op(atomic.as_mut_ptr());
}

相關用法


注:本文由純淨天空篩選整理自rust-lang.org大神的英文原創作品 std::sync::atomic::AtomicU8.as_mut_ptr。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。