PROC_WALK(3PROC) Process Control Library Functions PROC_WALK(3PROC)

NAME


proc_walk - walk all processes or threads in /proc

LIBRARY


Process Control Library (libproc, -lproc)

SYNOPSIS


#include <libproc.h>

int
proc_walk(proc_walk_f *func, void *arg, int flag);

DESCRIPTION


The proc_walk() function walks all threads and processes in /proc and
calls the callback function func once for each one with the user
specified arg. The definition of the proc_walk_f is available in
libproc(3LIB).

func will be called once for each process and will always have its
first argument filled in with the value of the psinfo file of the
process. The value of flag controls whether or not information about
the threads in the process are included and how many times the callback
function func is called. The following values may be passed in for
flag:

PR_WALK_PROC Indicates that the walker is only concerned with
the process. func will be called once for each
process in the system. Only the psinfo will be
read for the process and passed to func. The
second argument, the one for the lwpsinfo_t, will
be passed as NULL.

PR_WALK_LWP The caller wants both process and thread
information. func will be called once for each
thread in the system. In addition to the process
psinfo information, the ps specific information for
a given thread will be included in the lwpsinfo_t
argument.

In addition, the following values may be combined with one of the above
values of flag with a bitwise-inclusive-OR:

PR_WALK_INCLUDE_SYS
Include SYS (system) processes. Normally SYS
processes are skipped during the walk of the
process tree.

The return value of the caller's func function determines whether or
not iteration will continue. If func returns a non-zero value, then
iteration will terminate and that return value will be returned to the
caller. To distinguish between system errors and caller errors, it is
recommended that the function only return positive integers in the
event of an error.

RETURN VALUES


Upon successful completion, the proc_walk() function returns 0.
Otherwise, -1 is returned and errno is updated to reflect the error
that occurred.

ERRORS


In addition to the errors listed below, the proc_walk() function may
fail for the same reasons as the opendir(3C), readdir(3C), and
malloc(3C) functions.

EINVAL flag is not one of PR_WALK_PROC or PR_WALK_LWP.

INTERFACE STABILITY


Uncommitted

MT-LEVEL
MT-Safe

SEE ALSO


malloc(3C), opendir(3C), readdir(3C), libproc(3LIB), proc(5)

illumos November 27, 2023 illumos

tribblix@gmail.com :: GitHub :: Privacy