#proc #linux #info #sys #procfs #filesystem

lpfs

Retriving infomations from linux proc filesystem

2 unstable releases

0.2.0 Feb 2, 2020
0.1.0 Nov 24, 2019

#8 in #procfs

Download history 589/week @ 2023-12-01 347/week @ 2023-12-08 367/week @ 2023-12-15 83/week @ 2023-12-22 200/week @ 2023-12-29 700/week @ 2024-01-05 465/week @ 2024-01-12 439/week @ 2024-01-19 518/week @ 2024-01-26 720/week @ 2024-02-02 739/week @ 2024-02-09 225/week @ 2024-02-16 213/week @ 2024-02-23 72/week @ 2024-03-01 98/week @ 2024-03-08 15/week @ 2024-03-15

418 downloads per month
Used in perf_monitor

MIT license

205KB
3K SLoC

docs.rs crates.io license

The goal of this repo is to make retriving system informations reside in proc file system easier.

Example

use lpfs::proc::*;
use lpfs::pid::*;

fn main() {
    //  /proc/stat
    println!("{:?}", stat().unwrap());

    //  /proc/1/stat
    println!("{:?}", stat_of(1).unwrap());
}

Interface Design

eminence/procfs is a similar crate with different interface design.

Top-Level Files

Each file is retrived by a function reside in lpfs::proc with same name. For example, lpfs::proc::cmdline retrive from /proc/cmdline.

Process Directories

It's similar with top-level files, here is an example with stat.

function file
stat_of(pid) /proc/[pid]/stat
stat_self() /proc/self/stat
stat_of_task(pid, tid) /proc/[pid]/task/[tid]/stat
stat_self_task(tid) /proc/self/task/[tid]/stat

These functions reside in lpfs::pid

Minial Requirement

rust 2018 (rustc 1.31.0 +)

Supported

all linux distribution with 3.+ kernel version.

LICENSE

MIT

No runtime deps