1 个不稳定版本
使用旧 Rust 2015
0.2.147 | 2023年8月28日 |
---|
#373 in 操作系统
4MB
102K SLoC
libc - 平台的系统库的原始 FFI 绑定
libc
提供了与 C 代码(或 "C-like" 代码)在 Rust 支持的所有平台上轻松交互所需的全部定义。这包括类型定义(例如 c_int
)、常量(例如 EINVAL
)以及函数头(例如 malloc
)。
该软件包在软件包根目录下导出所有底层平台类型、函数和常量,因此所有项都可通过 libc::foo
访问。所有导出 API 的类型和值都与为 libc 编译的平台相匹配。
有关此库设计的更详细信息,可以在其 相关 RFC 中找到。
使用方法
将以下内容添加到您的 Cargo.toml
[dependencies]
libc = "0.2"
特性
-
std
:默认情况下,libc
与标准库链接。禁用此特性可删除此依赖项,并能够在#![no_std]
软件包中使用libc
。 -
extra_traits
:在libc
中实现的全部struct
都实现了Copy
和Clone
。此特性推导出Debug
、Eq
、Hash
和PartialEq
。 -
const-extern-fn
:将一些extern fn
转换为const extern fn
。如果您使用 Rust >= 1.62,则此特性默认启用。否则,需要 nightly rustc。 -
已弃用:
use_std
已弃用,与std
等效。
Rust 版本支持
目前最低支持的 Rust 工具链版本为 Rust 1.13.0。 (libc 目前没有关于最低支持的 Rust 版本更改的政策;此类政策尚在制定中。)需要较新 Rust 功能的 API 仅在较新的 Rust 工具链上可用
特性 | 版本 |
---|---|
联合体 |
1.19.0 |
常量 内存::大小 |
1.24.0 |
表示(对齐) |
1.25.0 |
额外特性 |
1.25.0 |
核心::ffi::c_void |
1.30.0 |
表示(打包(N)) |
1.33.0 |
cfg(目标供应商) |
1.33.0 |
const-extern-fn |
1.62.0 |
平台支持
有关 ci/build.sh
的平台,请参阅GitHub Actions 和 Cirrus CI 上的测试矩阵。这些平台保证了为每个 Rust 工具链构建 libc
。
许可证
本项目受以下任一许可证的许可:
任选其一。
贡献
我们欢迎所有想贡献力量的人。有关更多信息,请参阅贡献说明。
对本项目的任何形式(问题、拉取请求等)的贡献必须遵守 Rust 的行为准则。
除非你明确表示,否则任何有意提交以包含在 libc
中的贡献,如 Apache-2.0 许可证所定义,将按上述方式双许可,不附加任何额外的条款或条件。