gpt4 book ai didi

rust shm_open() 函数失败

转载 作者:行者123 更新时间:2023-11-29 08:29:37 26 4
gpt4 key购买 nike

这段代码:

extern crate libc;
use libc::{O_CREAT, O_RDWR, shm_open};

use std::ffi::CString;

fn shm_create() {
let name = CString::new("/shaman").unwrap().as_ptr();
let fd = unsafe { shm_open(name, O_CREAT|O_RDWR, 0o600 ) };
println!("shm_open: {}", fd);
}

fn main() {
shm_create();
}

总是打印:

shm_open: -1

相同的 c 实现工作。

我是一个 Rust 新手,问题似乎就在那里。

我没主意了……对可能出现的问题有什么建议吗?

最佳答案

您的代码涉及悬空指针:

let name = CString::new("/shaman").unwrap().as_ptr();

调用 shm_open 时字符串已消失。试试这个:

let name = CString::new("/shaman").unwrap();
let fd = unsafe { shm_open(name.as_ptr(), O_CREAT|O_RDWR, 0o600 ) };

关于rust shm_open() 函数失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49608550/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com