3个版本
0.0.3 | 2019年11月24日 |
---|---|
0.0.2 | 2019年11月18日 |
0.0.1 | 2019年11月16日 |
#45 in #sys
83KB
2.5K SLoC
此crate已在crates.io上停止维护。
因为它已被重命名为(lpfs)https://github.com/pearzl/lpfs。
您可以在lpfs的proc_getter分支中找到这些代码。
此仓库的目标是使从proc文件系统中检索系统信息变得更容易。
示例
use proc_getter::cmdline::*;
use proc_getter::pid::cmdline::*;
fn main() {
// /proc/cmdline
println!("{:?}", cmdline());
// /proc/1/cmdline
println!("{:?}", cmdline_of(1));
}
最小要求
rust 2018 (rustc 1.31.0 +)
支持
我尽量使它支持具有3.+内核版本的任何发行版。
不同版本内核和发行版之间的proc文件系统并不相同。某些代码可能无法在您的系统上运行。
因此,几乎所有函数都返回Result,因为指定的文件可能不存在于您的系统中。可能存在指定的文件,但仍然返回Err。我将这种情况视为错误,并应该修复,欢迎提交PR和issue。
大多数列出的文件此处应该得到支持。详细信息如下。
进程
顶级文件
/proc/*
文件 | 状态 | 文件 | 状态 | 文件 | 状态 |
---|---|---|---|---|---|
buddyinfo | ✔ | cmdline | ✔ | consoles | ✔ |
cpuinfo | ✔ | crypto | ✔ | devices | ✔ |
diskstates | ✔ | dma | ✔ | execdomains | ✔ |
fb | ✔ | filesystems | ✔ | interrupts | ✔ |
iomem | ✔ | ioports | ✔ | kcore | ✔ |
kmsg | ❌ | loadavg | ✔ | locks | ✔ |
mdstat | ✔ | meminfo | ✔ | misc | ✔ |
modules | ✔ | mounts | ✔ | mtrr | ✔ |
partitions | ✔ | slabinfo | ✔ | stat | ✔ |
swaps | ✔ | uptime | ✔ | version | ✔ |
self | ✔ | sysrq-trigger | ❌ |
进程目录
/proc/${pid}/*
文件 | 状态 | 文件 | 状态 | 文件 | 状态 |
---|---|---|---|---|---|
cmdline | ✔ | cwd | ✔ | environ | ✔ |
exe | ✔ | fd | ❌ | maps | ✔ |
root | ✔ | stat | ✔ | statm | ✔ |
状态 | ✔ |
其他子目录
下表列出了已实现的文件。
目录 | 文件 |
---|---|
acpi | wakeup |
driver | rtc |
net | arp, dev, dev_mcast, iptables_name, netstat |
route |
注意:尚未完全测试。