Provided by: freebsd-manpages_12.2-1_all bug

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)