table of contents
PGET(9) | Kernel Developer's Manual | PGET(9) |
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¶
May 3, 2014 | Debian |