rust-alloc-no-stdlib:通用分配器的接口,因此no_std rust库可以在有或没有stdlib链接的情况下分配内存

时间:2024-05-23 11:06:07
【文件属性】:

文件名称:rust-alloc-no-stdlib:通用分配器的接口,因此no_std rust库可以在有或没有stdlib链接的情况下分配内存

文件大小:25KB

文件格式:ZIP

更新时间:2024-05-23 11:06:07

Rust

在#![no_std]模块中分配内存的框架。 要求 锈1.6 文献资料 当前,尚无从no_std模块中分配内存的标准方法。 这提供了一种机制,可以描述通过不安全地链接到calloc或不安全地引用可变全局变量,可以完全在堆栈上满足的内存分配。 如果未专门在内存上调用free_cell,则该库当前将泄漏内存。 但是,如果由实际上依赖于stdlib的库链接,则该库可以简单地传入一些分配器并使用标准Box分配,并且将自动释放。 通过使用calloc预先分配最大数据限制并使用seccomp禁止将来的系统调用,该库还应该可以将需要动态分配的rust应用程序完全监禁。 用法 共有3种分配内存的方式,每种方式各有利弊 在堆栈上 根本不需要stdlib,这是可能的。但是,这会占用堆栈深度的自然限制,通常将程序限制为仅几兆个动态分配的数据 例子: // First define a struct to


【文件预览】:
rust-alloc-no-stdlib-master
----.travis.yml(375B)
----alloc-stdlib()
--------tests()
--------src()
--------Cargo.toml(650B)
--------README.md(7KB)
----tests()
--------lib.rs(13KB)
----LICENSE(1KB)
----src()
--------bin()
--------allocated_stack_memory.rs(700B)
--------allocator.rs(209B)
--------init.rs(10KB)
--------tests.rs(2KB)
--------allocated_memory()
--------stack_allocator.rs(4KB)
--------lib.rs(3KB)
----Cargo.toml(857B)
----.gitignore(18B)
----README.md(7KB)

网友评论