access user process state
struct kinfo_proc *
struct kinfo_proc *p
struct kinfo_proc *p
() returns a (sub-)set of active
processes in the kernel indicated by kd
arguments constitute a predicate which limits the set of processes returned.
The value of op
describes the filtering
predicate as follows:
Only the first elemsize
bytes of each array
entry are returned. If the size of the
structure increases in size in a
future release of OpenBSD
, the library will only
return the requested amount of data for each array entry and programs that use
() will continue to function without
the need for recompilation. The number of processes found is returned in the
reference parameter cnt
. The processes are
returned as a contiguous array of kinfo_proc
structures, the definition for which is available in
This memory is locally allocated, and subsequent calls to
() will overwrite this storage.
() sets the thread ID field accordingly
for each thread except for the process (main thread) which has it set to -1.
() returns a null-terminated argument
vector that corresponds to the command line arguments passed to process
indicated by p
. Most likely, these arguments
correspond to the values passed to
on process creation. This
information is, however, deliberately under control of the process itself.
Note that the original command name can be found, unaltered, in the
field of the process structure
returned by kvm_getprocs
argument indicates the maximum number
of characters, including null bytes, to use in building the strings. If this
amount is exceeded, the string causing the overflow is truncated and the
partial result is returned. This is handy for programs like
that print only a one line
summary of a command and should not copy out large amounts of text only to
ignore it. If nchr
is zero, no limit is
imposed and all argument strings are returned in their entirety.
The memory allocated to the
pointers and string
storage is owned by the kvm(3)
library. Subsequent kvm_getprocs
clobber this storage.
() function is similar to
() but returns the vector of
environment strings. This data is also alterable by the process.
() all return
These routines do not belong in the