当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Rust CString.from_vec_with_nul用法及代码示例


本文简要介绍rust语言中 std::ffi::CString.from_vec_with_nul 的用法。

用法

pub fn from_vec_with_nul(v: Vec<u8>) -> Result<Self, FromVecWithNulError>

尝试将 Vec<u8> 转换为 CString

存在运行时检查以确保 Vec (其最后一个元素)中只有一个 nul 字节。

错误

如果存在 nul 字节而不是最后一个元素或不存在 nul 字节,将返回错误。

例子

在没有结束 nul 字节的情况下调用成功的转换将产生与 CString::new 相同的结果。

use std::ffi::CString;
assert_eq!(
    CString::from_vec_with_nul(b"abc\0".to_vec())
        .expect("CString::from_vec_with_nul failed"),
    CString::new(b"abc".to_vec()).expect("CString::new failed")
);

格式不正确的 Vec 将产生错误。

use std::ffi::{CString, FromVecWithNulError};
// Interior nul byte
let _: FromVecWithNulError = CString::from_vec_with_nul(b"a\0bc".to_vec()).unwrap_err();
// No nul byte
let _: FromVecWithNulError = CString::from_vec_with_nul(b"abc".to_vec()).unwrap_err();

相关用法


注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 std::ffi::CString.from_vec_with_nul。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。