bionic (2) getpriority.2.gz

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)