Expand description
§pals = Processes’ Arguments LiSt
The main API is pals()
which returns ProcList
if succeeded.
let proc_list = pals::pals().unwrap();
§ProcList
can be regarded as a list of procs()
.
let proc_list = pals::pals().unwrap();
let procs = proc_list.procs();
The following items can be accessed:
-
pid – Process::pid.
-
ppid – Process::ppid.
-
nul-terminated arguments in one single string – Process::arguments.
-
argument iterator –
Process::argv()
. -
parent process –
ProcList::parent_of()
.
let proc_list = pals::pals().unwrap();
let mut procs = proc_list.procs();
let first = procs.next().unwrap();
println!( "pid:{:?}, ppid:{:?}", first.pid, first.ppid );
println!( "arguments:{}", first.arguments );
println!( "argv:\n{}", first
.argv()
.enumerate()
.fold( String::new(),
|acc,(i,arg)| format!( "{}\narg #{}:{}", acc, i, arg ))
);
println!( "parent's pid:{:?}", proc_list.parent_of( first.pid ));
§ProcList
can be regarded as a list of Proc
trees.
Besides items mentioned above, the following extra items can be accessed:
-
parent nodes –
Proc::parent()
. -
all child nodes –
Proc::children()
.
use pals::{Proc, pals};
pals().map( |proc_list| {
fn assert_ppid_is_parent_pid( proc: Proc ) {
proc.parent()
.map( |parent| assert_eq!( parent.pid, proc.ppid ));
proc.children()
.for_each( |subproc| assert_ppid_is_parent_pid( subproc ));
}
proc_list
.children()
.for_each( |proc| assert_ppid_is_parent_pid( proc ))
}).unwrap();
§ProcList
can be converted to trees::Forest
.
use pals::{Process, pals};
use trees::Forest;
let proc_list = pals().unwrap();
let bfs = proc_list
.bfs()
.map( ToOwned::to_owned ); // &Process -> Process
let forest = Forest::<Process>::from( bfs );
§Binary utility
See README.md for more.
Structs§
- Pid
- Process ID.
- Proc
- A process agent by which pid,ppid,arguments/argv, parent and child processes can be accessed.
- Proc
List - Process list. It can be viewed as a list of process or a list of process trees.
- Process
- Process holding pid, ppid, command name and arguments of one or more nul-terminated argument(s).