在字节流中读取NUL终止的字符串

时间:2017-02-08 16:57:52

标签: rust

我有一个从TCP连接读取的字节数据包:

let x = [82, 0, 0, 0, 10, 53, 46, 53, 46, 53, 48, 45, 77, 97, 114,
         105, 97, 68, 66, 0, 235, 16, 194, 9, 65, 41, 73, 112,
         122, 53, 53, 76, 0, 255, 247, 8, 2, 0, 15, 160, 21, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 92, 108, 41, 37, 124, 99, 93, 42,
         84, 75, 92, 108, 0, 109, 121, 115, 113, 108, 95, 110, 97,
         116, 105, 118, 101, 95, 112, 97, 115, 115, 119, 111, 114,
         100, 0];

有一个以NUL结尾的C字符串:

77, 97, 114, 105, 97, 68, 66, 0

如何读取NUL终止为标准Rust &strString

目前我正在尝试像

这样的事情
let cstr = CStr::from_bytes_with_nul(&x[12 ..]);
assert!(cstr.is_ok());
println!("username {:?}", cstr);

但断言是失败的。我确定我错过了一些简单的事情。

0 个答案:

没有答案