#文件描述符 #系统调用 #Linux #调用 #抽象 #I/O #stdio

无std linux-io

针对与文件描述符相关的Linux系统调用的轻量级抽象

13个版本 (破坏性更新)

0.11.0 2024年7月31日
0.9.1 2024年7月27日
0.6.0 2023年2月21日

#239 in Unix APIs

Download history 2/week @ 2024-04-27 4/week @ 2024-05-18 3/week @ 2024-06-15 3/week @ 2024-06-22 380/week @ 2024-07-13 12/week @ 2024-07-20 520/week @ 2024-07-27 13/week @ 2024-08-03

554 每月下载量
2 crates 中使用

MIT 许可证

215KB
4.5K SLoC

linux-io crate for Rust

此crate提供了一些针对直接与文件描述符相关的Linux系统调用的轻量级封装。

目标是使与Linux系统调用接口的工作变得方便,并绕过 std/libc,而不引入任何不必要的额外抽象,仅对参数类型和返回值进行轻微的转换。

let mut f = File::create_raw(filename, 0o666)?
f.write_all(message)?; // (using the std::io::Write trait)
f.close()?;

默认情况下,此crate在合理的地方实现标准库中的特性,但您可以禁用名为 std 的默认crate功能,以删除这些特性实现,从而使此crate能够在 no_std 环境中使用。


lib.rs:

针对与文件描述符相关的Linux系统调用的轻量级但安全的抽象。

此crate的目标是提供一个方便的API,同时跳过任何不必要的抽象。在大多数情况下,对crate中函数的调用应减少为内联系统调用和一些最小化的参数和结果转换代码,结果应该对熟悉底层系统调用行为的人来说并不令人惊讶。

此crate中的函数封装了crate linux_unsafe 中的函数以实际执行系统调用,因此此crate的平台支持仅限于另一个crate支持的范围。

默认实现标准库I/O特性,但可以通过禁用默认功能 std 来使其对 no_std 环境友好。

此crate的初始版本仅关注基本文件操作,直到API感觉稳定为止。在以后的版本中,希望范围可以扩大到涵盖大多数或所有与文件描述符一起工作的系统调用。

依赖项