5 个版本
0.2.3 | 2022 年 12 月 7 日 |
---|---|
0.2.2 | 2022 年 7 月 8 日 |
0.2.1 | 2022 年 7 月 7 日 |
0.2.0 | 2021 年 1 月 12 日 |
0.1.0 | 2021 年 1 月 10 日 |
#573 in Unix API
2,839 每月下载量
17KB
348 行代码(不包括注释)
clone3
Rust 对 clone3
Linux 系统调用的绑定。
开发
目前我们提供的绑定是 unsafe 的。我们可以考虑在 API 的一个受限制子集上创建一个 safe 包装器。
lib.rs
:
对 clone3
Linux 系统调用的绑定。
有关更多信息,请参阅 clone3 手册页。
这是一个复杂且通常不安全的操作。用户必须理解文档才能安全且正确地使用它。
示例
use clone3::Clone3;
let mut pidfd = -1;
let mut clone3 = Clone3::default();
clone3.flag_pidfd(&mut pidfd);
match unsafe { clone3.call() }.unwrap() {
0 => println!("i am the child"),
child => println!("i am the parent, my child has pid {} and my pidfd is {}", child, pidfd),
}
特性
clone3 API 可以在 Linux 内核版本之间以向后兼容的方式更改。此软件包通过 Cargo 特性(如 linux_5-5
,linux_5-7
)支持选择目标版本。默认值为最新内核版本。未指定 linux
特性对应于初始 clone3 API。
依赖关系
~4–6MB
~114K SLoC