Rust 和 C 的交互
在 Rust 中,字符串是一个胖指针,包括具有所有权的 String
以及 &'a str
,并且为 utf-8 编码
而在 C 中,字符串只是一个单纯的指针,以有符号的 i8
为单元,以 \0
作为结尾,长度不包括结尾 ‘\0’
在使用 Rust 编写 initrpoc 和 系统调用的时候,由于测例所要求的的接口所使用的的字符串相关参数均为 C 标准,所以我们需要将 Rust 和 C 之间的字符串进行转换
在 Rust 中,字符串是一个胖指针,包括具有所有权的 String
以及 &'a str
,并且为 utf-8 编码
而在 C 中,字符串只是一个单纯的指针,以有符号的 i8
为单元,以 \0
作为结尾,长度不包括结尾 ‘\0’
在使用 Rust 编写 initrpoc 和 系统调用的时候,由于测例所要求的的接口所使用的的字符串相关参数均为 C 标准,所以我们需要将 Rust 和 C 之间的字符串进行转换