【发布时间】:2022-01-05 10:23:24
【问题描述】:
use std::ptr::{addr_of_mut, null_mut};
use libc::{CLOCK_MONOTONIC, timer_create, timer_delete, timer_t};
fn main() {
let mut timer1: timer_t = null_mut();
unsafe {
let r = timer_create(CLOCK_MONOTONIC, null_mut(), addr_of_mut!(timer1));
if r == 0 {
timer_delete(timer1);
}
}
}
调用timer_create() 时,生成的计时器ID 存储在变量timer1 中。我将它作为可变指针传递,这就是输出变量。
如果知道 API 保证它是安全的,我如何避免像上面的代码中那样将 timer1 初始化为 null_mut()?
【问题讨论】: