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

Download history 35924/week @ 2024-04-27 33779/week @ 2024-05-04 39556/week @ 2024-05-11 40282/week @ 2024-05-18 34291/week @ 2024-05-25 37780/week @ 2024-06-01 42389/week @ 2024-06-08 34510/week @ 2024-06-15 36380/week @ 2024-06-22 35463/week @ 2024-06-29 36851/week @ 2024-07-06 31918/week @ 2024-07-13 37462/week @ 2024-07-20 38354/week @ 2024-07-27 38617/week @ 2024-08-03 32586/week @ 2024-08-10

152,182 每月下载量
170 个crate中使用 (直接使用45个)

MIT 许可证

88KB
2K SLoC

此crate提供了使用sysctl接口读取和写入内核信息的安全接口。

Build Status

Current Version

支持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常量获取sysctl
  • set_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