getpriority, setpriority - get/set program scheduling pri­
       ority


SYNOPSIS

       #include <sys/time.h>
       #include <sys/resource.h>

       int getpriority(int which, int who);
       int setpriority(int which, int who, int prio);


DESCRIPTION

       The scheduling priority of the process, process group,  or
       user,  as  indicated by which and who is obtained with the
       getpriority call and set with the setpriority call.  Which
       is  one  of PRIO_PROCESS, PRIO_PGRP, or PRIO_USER, and who
       is interpreted relative to which (a process identifier for
       PRIO_PROCESS,  process group identifier for PRIO_PGRP, and
       a user ID for PRIO_USER).  A zero value of who denotes the
       current  process, process group, or user.  Prio is a value
       in the range -20 to 20.  The default priority is 0;  lower
       priorities cause more favorable scheduling.

       The  getpriority call returns the highest priority (lowest
       numerical value) enjoyed by  any  of  the  specified  pro­
       cesses.   The  setpriority call sets the priorities of all
       of the specified processes to the specified  value.   Only
       the super-user may lower priorities.


RETURN VALUE

       Since getpriority can legitimately return the value -1, it
       is necessary to clear the external variable errno prior to
       the call, then check it afterwards to determine if a -1 is
       an error or a  legitimate  value.   The  setpriority  call
       returns 0 if there is no error, or -1 if there is.


ERRORS

       ESRCH  No process was located using the which and who val­
              ues specified.

       EINVAL Which was not one of  PRIO_PROCESS,  PRIO_PGRP,  or
              PRIO_USER.

       In  addition  to  the  errors indicated above, setpriority
       will fail if:

       EPERM  A process was located, but  neither  its  effective
              nor  real  user ID matched the effective user ID of
              the caller.

       EACCES A non super-user attempted to lower a process  pri­
              ority.

       Including  <sys/time.h>  is  not  required these days, but
       increases portability.  (Indeed, <sys/resource.h>  defines
       the  rusage  structure  with fields of type struct timeval
       defined in <sys/time.h>.)


CONFORMING TO

       SVr4, 4.4BSD  (these  function  calls  first  appeared  in
       4.2BSD).


SEE ALSO

       nice(1), fork(2), renice(8)


Man(1) output converted with man2html