从FFI返回的片中创建OsStr(ing)的正确方法是什么?

匿名的

我有一个函数接受带有args的回调data: *const u8, length: usize,该回调表示某些路径。从中创建OsStr(ing)的正确方法是什么?

from_byte_sliceOsStrExt,但好像它不检查数据是否正确WTF-8或什么的,目前还不清楚如何使用它。

Shepmaster

您可以使用from_raw_parts从原始指针到切片,然后OsStrExt::from_bytes

use std::slice;
use std::ffi::OsStr;
use std::os::unix::ffi::OsStrExt; // NOTE PLATFORM-SPECIFIC

fn foo(data: *const u8, length: usize) {
    let slice = unsafe { slice::from_raw_parts(data, length) };
    let os_str = OsStr::from_bytes(slice);
}

fn main() {
}

请注意,这是特定于* nix的-Windows和* nix并不表示路径是相同的方式(结果这东西相当复杂!)。如果您的API实际上返回的是UTF-8字符串,则可以使用常规的字符串方法将原始组件转换为&str,然后转换为OsStr(ring)

有关的更多信息WTF-8,我强烈推荐优秀的文档。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从&str转换为OsStr的正确方法是什么?

来自分类Dev

创建圆形动画的正确方法是什么?

来自分类Dev

创建复杂元素的正确方法是什么?

来自分类Dev

从颜色创建画笔的正确方法是什么?

来自分类Dev

创建预设结构的正确方法是什么?

来自分类Dev

用参数创建函数并在单行中返回值的正确方法是什么?

来自分类Dev

正确的方法是什么?

来自分类Dev

从对象返回嵌套集合的正确方法是什么?

来自分类Dev

从Scala中的异常返回的正确方法是什么?

来自分类Dev

ColdFusion从Java返回查询对象的正确方法是什么?

来自分类Dev

从灯具返回结构化数据的正确方法是什么?

来自分类Dev

使用c ++ 11线程返回结果的正确方法是什么?

来自分类Dev

找出sql语句返回true或false的正确方法是什么?

来自分类Dev

从对象返回嵌套集合的正确方法是什么?

来自分类Dev

返回已执行的搜索的正确方法是什么?

来自分类Dev

播放框架 - 返回数据列表的正确方法是什么?

来自分类Dev

从角度订阅中返回的正确方法是什么?

来自分类Dev

在 Spring 中返回 List 的正确方法是什么

来自分类Dev

使用autofac创建需要参数的对象的正确方法是什么?

来自分类Dev

创建新的通用结构的正确方法是什么?

来自分类Dev

React Components-创建它们的正确方法是什么?

来自分类Dev

为内联汇编创建常量池的正确方法是什么?

来自分类Dev

在pycharm中创建项目结构的正确方法是什么?

来自分类Dev

创建异常层次结构的正确方法是什么?

来自分类Dev

在SKSpriteKit中创建可滚动表的正确方法是什么?

来自分类Dev

使用Terraform变量创建多个元素的正确方法是什么?

来自分类Dev

用颜色创建画笔的正确方法是什么?

来自分类Dev

创建线程zeromq套接字的正确方法是什么?

来自分类Dev

用Java创建对象的正确方法是什么?

Related 相关文章

  1. 1

    从&str转换为OsStr的正确方法是什么?

  2. 2

    创建圆形动画的正确方法是什么?

  3. 3

    创建复杂元素的正确方法是什么?

  4. 4

    从颜色创建画笔的正确方法是什么?

  5. 5

    创建预设结构的正确方法是什么?

  6. 6

    用参数创建函数并在单行中返回值的正确方法是什么?

  7. 7

    正确的方法是什么?

  8. 8

    从对象返回嵌套集合的正确方法是什么?

  9. 9

    从Scala中的异常返回的正确方法是什么?

  10. 10

    ColdFusion从Java返回查询对象的正确方法是什么?

  11. 11

    从灯具返回结构化数据的正确方法是什么?

  12. 12

    使用c ++ 11线程返回结果的正确方法是什么?

  13. 13

    找出sql语句返回true或false的正确方法是什么?

  14. 14

    从对象返回嵌套集合的正确方法是什么?

  15. 15

    返回已执行的搜索的正确方法是什么?

  16. 16

    播放框架 - 返回数据列表的正确方法是什么?

  17. 17

    从角度订阅中返回的正确方法是什么?

  18. 18

    在 Spring 中返回 List 的正确方法是什么

  19. 19

    使用autofac创建需要参数的对象的正确方法是什么?

  20. 20

    创建新的通用结构的正确方法是什么?

  21. 21

    React Components-创建它们的正确方法是什么?

  22. 22

    为内联汇编创建常量池的正确方法是什么?

  23. 23

    在pycharm中创建项目结构的正确方法是什么?

  24. 24

    创建异常层次结构的正确方法是什么?

  25. 25

    在SKSpriteKit中创建可滚动表的正确方法是什么?

  26. 26

    使用Terraform变量创建多个元素的正确方法是什么?

  27. 27

    用颜色创建画笔的正确方法是什么?

  28. 28

    创建线程zeromq套接字的正确方法是什么?

  29. 29

    用Java创建对象的正确方法是什么?

热门标签

归档