Crate pals[−][src]
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. |
| ProcList | 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). |
Functions
| pals | Dumps running processes' arguments into a list/forest. |
| win_argv | Splits command line into arguments, aka argv, using rules defined on Windows platform. See this doc for more. |