gpt4 book ai didi

rust - 如何将切片写入文件?

转载 作者:行者123 更新时间:2023-12-03 11:31:32 26 4
gpt4 key购买 nike

我有通过绑定(bind)与 C 交互的代码。在里面我有这个:

let a1: *const i8 = get_data();
let size1 = get_size_of_data();

let a2 = ::std::slice::from_raw_parts(a2, size1);
我需要写入 a1 的数据点。或 a2作为一个切片。数据的大小或长度是已知的。
我试过:
  let mut f1 = File::create("my_file.dat").unwrap();
// ??? f1.write_all(a2).expect("unable to write binary data to file");
// ??? f1.write_all(a2.as_bytes).expect("unable to write binary data to file");
并没有编译。
怎么做?

最佳答案

您需要通过 &[u8]write_all ,但您有 &[i8] .因此,您需要的唯一更改是将您的 *const i8*const u8slice::from_raw_parts

let a1: *const i8 = std::ptr::null(); // replace with `get_data()`
let size1 = 42; // replace `get_size_of_data()`

let a2: &[u8] = unsafe { std::slice::from_raw_parts(a1 as *const u8, size1) };

use std::io::Write;
let mut f1 = std::fs::File::create("my_file.dat").unwrap();
f1.write_all(a2).expect("write must succeed");

关于rust - 如何将切片写入文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63207007/

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