Provided by: manpages-es_1.55-10_all bug

NOMBRE

       getpriority, setpriority - obtiene/asigna la prioridad de planificación de un programa

SINOPSIS

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

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

DESCRIPCIÓN

       La  prioridad  de planificación del proceso, grupo de procesos o usuario, según se indique
       en which y who se obtiene con la función getpriority y se asigna con  setpriority.   Which
       puede  ser  PRIO_PROCESS,  PRIO_PGRP, o PRIO_USER, y who se interpreta en función de which
       (un indentificador de proceso para PRIO_PROCESS, un indentificador de  grupo  de  procesos
       para  PRIO_PGRP,  y  un  identificador  de  usuario para PRIO_USER).  Un valor cero de who
       indica (respectivamente) el proceso invocador, el grupo de proceso del proceso  invocador,
       o  el  identificador  de  usuario  real del proceso invocador.  Prio es un valor que puede
       variar de -20 a 20 (vea la sección Observaciones más abajo) .  La prioridad por defecto es
       0; cuanto más baja es la prioridad más favorable es la planificación.

       La  llamada  getpriority devuelve la prioridad más alta (el valor numérico más bajo) de la
       que disfruta cualquiera de los procesos especificados. La llamada  setpriority  asigna  el
       valor  especificado  a  las  prioridades  de  todos  los  procesos  especificados. Sólo el
       superusuario puede decrementar las prioridades (haciéndolas, por tanto, más altas).

VALOR DEVUELTO

       Ya que getpriority legítimamente puede devolver  el  valor  -1,  es  necesario  borrar  la
       variable  externa errno antes de la llamada a la función y comprobar su valor más adelante
       para determinar si -1 es un error o un valor legítimo.  La función setpriority devuelve  0
       si no hay error o -1 si lo hay.

ERRORES

       ESRCH   No  se  encontró  ningún  proceso  que cumpliera con los valores especificados por
               which y who.

       EINVAL  Which no era PRIO_PROCESS, PRIO_PGRP, ni PRIO_USER.

       Además de los errores indicados arriba, setpriority puede fallar si:

       EPERM  Se encontró un proceso,  pero  ni  el  identificador  de  usuario  efectivo  ni  el
              identificador  de  usuario  real  del  invocador  coinciden con su identificador de
              usuario efectivo.

       EACCES Un no superusuario intentó decrementar la prioridad de un proceso.

OBSERVACIONES

       Los detalles sobre la condición para EPERM dependen  del  sistema.   La  descripción  dada
       arriba  es  lo  que  dice SUSv3, y parece ser seguida por todos los sistemas de tipo SYSV.
       Linux requiere que el identificador de usuario real o efectivo del invocador coincida  con
       el usuario real del proceso who (en lugar de su identificador de usuario efectivo).  Todos
       los sistemas de tipo BSD (SunOS 4.1.3, Ultrix 4.2, BSD 4.3, FreeBSD 4.3, OpenBSD-2.5, ...)
       requieren  que  el  identificador  de  usuario  efectivo  del  invocador  coincida  con el
       identificador de usuario real o efectivo del proceso who.

       El rango real de prioridad varía entre las diferentes versiones del núcleo.  Las versiones
       de  Linux  anteriores  a  la 1.3.36 tenían -infinito..15. A partir de la versión 1.3.43 se
       tiene -20..19, y la llamada al sistema  getpriority  devuelve  40..1  para  estos  valores
       (puesto  que  los  números  negativos  son  códigos  de  error).  La llamada de biblioteca
       convierte N a 20-N.

       Incluir <sys/time.h> no es obligatorio hoy día,  pero  incrementa  la  portabilidad.   (De
       hecho,  <sys/resource.h>  define  la  estructura  rusage con campos de tipo struct timeval
       definida en <sys/time.h>.)

CONFORME A

       SVr4, 4.4BSD (estas funciones aparecieron por primera vez en 4.2BSD).

VÉASE TAMBIÉN

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