procps-sys

This library lets you a fully interface procps, which provides an API for Linux' /proc filesystem.

You can find it on crates.io.

Dependency

sudo apt-get install libprocps4-dev

Example

```rust extern crate procpssys; use procpssys::readproc::{openproc, readproc, closeproc, proct}; use std::ffi::CStr; use std::ptr::nullmut;

fn main() { unsafe { // intialize query for process list let proctab = openproc(/* fills cmdline line attribute */ procpssys::readproc::PROCFILLCOM);

    // go through all processes
    let mut procinfo = proc_t::default();
    while readproc(proctab, &mut procinfo) != null_mut() {

        // read cmdline attribute
        let cmdline = if procinfo.cmdline == null_mut() {
            "".to_string()
        } else {
            CStr::from_ptr(*procinfo.cmdline)
                .to_string_lossy()
                .into_owned()
        };

        // print information
        println!("pid: {} cmdline: \"{}\"", procinfo.tid, cmdline);
    }
    closeproc(proctab);
}

} ```

```c

include

include

include

int main(int argc, char **argv) {

PROCTAB *proc = openproc(PROCFILLMEM | PROCFILLSTAT | PROCFILLSTATUS | PROCFILLCOM); proct *procinfo;

while ((procinfo = readproc(proc, NULL)) != NULL) { if (procinfo->cmdline != NULL) { printf("%20s:\t%5ld\t%5lld\t%5lld\t%20s\n", procinfo->cmd, procinfo->resident, procinfo->utime, procinfo->stime, procinfo->cmdline[0]); freeproc(procinfo); } }

closeproc(proc); } ```