getpriority(3c) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨 페이지 이름
검색(S)

getpriority(3c)

getpriority(3C)          Standard C Library Functions          getpriority(3C)

NAME
       getpriority, setpriority - get and set the nice value

SYNOPSIS
       #include <sys/resource.h>

       int getpriority(int which, id_t who);


       int setpriority(int which, id_t who, int value);

DESCRIPTION
       The getpriority() function obtains the nice value of a process, thread,
       or  set of processes. The setpriority() function sets the nice value of
       a process, thread, or set of processes to value+NZERO, where  NZERO  is
       defined to be 20.


       Target  entities are specified by the values of the which and who argu‐
       ments.  The  which  argument  can  be  one  of  the  following  values:
       PRIO_PROCESS, PRIO_PGRP, PRIO_USER, PRIO_GROUP, PRIO_SESSION, PRIO_LWP,
       PRIO_TASK,  PRIO_PROJECT,  PRIO_ZONE, or PRIO_CONTRACT, indicating that
       the who argument is to be interpreted as a process ID, a process  group
       ID, an effective user ID, an effective group ID, a session ID, a thread
       (lwp) ID, a task ID, a project ID, a zone ID, or a process contract ID,
       respectively.  A  0  value  for  the who argument specifies the current
       process, process group, or user. A 0 value  for  the  who  argument  is
       treated  as  valid  group  ID,  session  ID,  thread (lwp) ID, task ID,
       project ID, zone ID, or process contract ID. A P_MYID value for the who
       argument can be used to specify the  current  group,  session,  thread,
       task, project, zone, or process contract, respectively.


       If  a specified process is multi-threaded, the nice value set with set‐
       priority() affects all threads in the process.


       If more than one process is specified, getpriority() returns NZERO less
       than the lowest nice value pertaining to any of the specified entities,
       and setpriority()  sets  the  nice  values  of  all  of  the  specified
       processes to value+NZERO.


       The default nice value is NZERO. Lower nice values cause more favorable
       scheduling.  The  range  of  valid  nice  values  is 0 to NZERO*2-1. If
       value+NZERO is less than the system's lowest supported nice value, set‐
       priority() sets the nice  value  to  the  lowest  supported  value.  If
       value+NZERO  is greater than the system's highest supported nice value,
       setpriority() sets the nice value to the highest supported value.


       Only a process with appropriate privileges can lower the nice value.


       Any process or thread using SCHED_FIFO or SCHED_RR is unaffected  by  a
       call  to  setpriority().  This is not considered an error. A process or
       thread that subsequently reverts to SCHED_OTHER will not have its  pri‐
       ority affected by such a setpriority() call.


       The  effect of changing the nice value varies depending on the schedul‐
       ing policy in effect.


       Since getpriority() can return the value -1 on  successful  completion,
       it  is necessary to set errno to 0 prior to a call to getpriority(). If
       getpriority() returns the value -1, then errno can be checked to see if
       an error occurred or if the value is a legitimate nice value.

RETURN VALUES
       Upon successful completion, getpriority() returns  an  integer  in  the
       range  from  -NZERO  to NZERO-1. Otherwise, −1 is returned and errno is
       set to indicate the error.


       Upon successful completion, setpriority() returns 0. Otherwise,  −1  is
       returned and errno is set to indicate the error.

ERRORS
       The getpriority() and setpriority() functions will fail if:

       ESRCH     No process or thread could be located using the which and who
                 argument values specified.


       EINVAL    The  value  of  the which argument was not recognized, or the
                 value of the who argument is not a valid process ID,  process
                 group  ID,  user  ID,  group ID, session ID, thread (lwp) ID,
                 task ID, project ID, or zone ID.



       In addition, setpriority() may fail if:

       EPERM     A process was located, but neither  the  real  nor  effective
                 user  ID of the executing process match the effective user ID
                 of the process whose nice value is being changed.


       EACCES    A request was made to change the nice value to  a  lower  nu‐
                 meric value and the current process does not have appropriate
                 privileges.


EXAMPLES
       Example 1 Example using getpriority()



       The  following  example returns the current scheduling priority for the
       process ID returned by the call to getpid(2).


         #include <sys/resource.h>
         ...
         int which = PRIO_PROCESS;
         id_t pid;
         int ret;

         pid = getpid();
         ret = getpriority(which, pid);


       Example 2 Example using setpriority()



       The following example sets the nice value for the current process to 0.


         #include <sys/resource.h>
         ...
         int which = PRIO_PROCESS;
         id_t pid;
         int value = -20;
         int ret;

         pid = getpid();
         ret = setpriority(which, pid, value);


USAGE
       The getpriority() and setpriority() functions work with an offset  nice
       value  (value-NZERO).  The  nice  value is in the range 0 to 2*NZERO-1,
       while the return value for getpriority() and the  third  parameter  for
       setpriority() are in the range -NZERO to NZERO-1.

ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:

       tab()  box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) ATTRIBUTE TYPEAT‐
       TRIBUTE  VALUE  _  Interface  StabilityCommitted  _  StandardSee  stan‐
       dards(7).


SEE ALSO
       nice(1), renice(1), sched_get_priority_max(3C), sched_setscheduler(3C),
       attributes(7), standards(7)

Oracle Solaris 11.4               1 Apr 2008                   getpriority(3C)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3