17个版本
使用旧的Rust 2015
0.5.5 | 2023年10月31日 |
---|---|
0.5.4 | 2022年12月9日 |
0.5.2 | 2022年8月16日 |
0.4.4 | 2022年3月1日 |
0.1.2 | 2017年5月23日 |
#6 in Unix API
152,182 每月下载量
在 170 个crate中使用 (直接使用45个)
88KB
2K SLoC
此crate提供了使用sysctl接口读取和写入内核信息的安全接口。
支持FreeBSD、Linux、macOS和iOS。 欢迎为改进和其他平台做出贡献。
文档
文档可在 docs.rs 上找到
使用方法
添加到 Cargo.toml
[dependencies]
sysctl = "*"
macOS/iOS
- 由于sysctl(3) API的限制,macOS/iOS中许多
Ctl
方法的self参数是可变的。 - macOS/iOS和Linux上不可用sysctl描述。
- 由于macos上不存在相应的sysctls,因此忽略了一些测试失败。
示例
sysctl附带了一些示例,请参阅示例文件夹
value.rs
:展示如何获取sysctl值value_as.rs
:将值解析为结构value_string.rs
:将值解析为字符串。由于Linux上的所有sysctl都是字符串,因此使用此方法可以实现跨平台兼容性。value_oid_as.rs
:从libc
crate的OID常量获取sysctlset_value.rs
:展示如何设置sysctl值struct.rs
:将数据读取到结构中temperature.rs
:解析温度iterate.rs
:展示sysctl树上的迭代
运行
$ cargo run --example iterate
或在您的程序中使用
extern crate sysctl;
use sysctl::Sysctl;
fn main() {
let ctl = sysctl::Ctl::new("kern.osrevision").unwrap();
println!("Description: {}", ctl.description().unwrap());
println!("Value: {}", ctl.value_string().unwrap());
}
依赖关系
~0.5–8MB
~60K SLoC