NAME¶
pget
—
locate a process by number
SYNOPSIS¶
#include
<sys/param.h>
#include
<sys/proc.h>
int
pget
(
pid_t
pid,
int
flags,
struct
proc **pp);
DESCRIPTION¶
This function takes a
pid as its argument,
which can be either a process or thread id, and fills a pointer to the
proc structure in
*pp. In the latter case, a process owning the
specified thread is looked for. The operation is performed by invoking the
pfind(9) function. The found process is returned
locked. For the
PGET_HOLD
case, it is
returned unlocked (but held). The
pget
()
function can perform additional manipulations, depending on a
flags argument.
The
flags argument is the logical OR of some
subset of:
PGET_HOLD
- If set, the found process will be held and unlocked.
PGET_CANSEE
- If set, the found process will be checked for its visibility. See
p_cansee(9).
PGET_CANDEBUG
- If set, the found process will be checked for its debuggability. See
p_candebug(9).
PGET_ISCURRENT
- If set, the found process will be checked that it matches the current
process context.
PGET_NOTWEXIT
- If set, the found process will be checked that it does not have the
process flag
P_WEXIT
set.
PGET_NOTINEXEC
- If set, the found process will be checked that it does not have the
process flag
P_INEXEC
set.
PGET_NOTID
- If set, pid is not assumed as a thread id
for values larger than
PID_MAX
.
PGET_WANTREAD
- If set, the found process will be checked that the caller may get a read
access to its structure. A shorthand for
(
PGET_HOLD
|
PGET_CANDEBUG
|
PGET_NOTWEXIT
).
RETURN VALUES¶
If the process is found in the specified way, then zero is returned, otherwise
an appropriate error code is returned.
SEE ALSO¶
p_candebug(9),
p_cansee(9),
pfind(9)