Provided by:
manpages-es_1.55-10_all 
NOMBRE
getpriority, setpriority - obtiene/asigna la prioridad de planificacion
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'ON
La prioridad de planificacion del proceso, grupo de procesos o usuario,
segun se indique en which y who se obtiene con la funcion getpriority y
se asigna con setpriority. Which puede ser PRIO_PROCESS, PRIO_PGRP, o
PRIO_USER, y who se interpreta en funcion 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 seccion Observaciones mas abajo) . La prioridad por defecto
es 0; cuanto mas baja es la prioridad mas favorable es la
planificacion.
La llamada getpriority devuelve la prioridad mas alta (el valor
numerico mas 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. Solo el
superusuario puede decrementar las prioridades (haciendolas, por tanto,
mas altas).
VALOR DEVUELTO
Ya que getpriority legitimamente puede devolver el valor -1, es
necesario borrar la variable externa errno antes de la llamada a la
funcion y comprobar su valor mas adelante para determinar si -1 es un
error o un valor legitimo. La funcion setpriority devuelve 0 si no hay
error o -1 si lo hay.
ERRORES
ESRCH No se encontro ningun proceso que cumpliera con los valores
especificados por which y who.
EINVAL Which no era PRIO_PROCESS, PRIO_PGRP, ni PRIO_USER.
Ademas de los errores indicados arriba, setpriority puede fallar si:
EPERM Se encontro 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 intento decrementar la prioridad de un
proceso.
OBSERVACIONES
Los detalles sobre la condicion para EPERM dependen del sistema. La
descripcion 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 varia entre las diferentes versiones del
nucleo. Las versiones de Linux anteriores a la 1.3.36 tenian
-infinito..15. A partir de la version 1.3.43 se tiene -20..19, y la
llamada al sistema getpriority devuelve 40..1 para estos valores
(puesto que los numeros negativos son codigos de error). La llamada de
biblioteca convierte N a 20-N.
Incluir <sys/time.h> no es obligatorio hoy dia, 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'EASE TAMBI'EN
nice(1), fork(2), renice(8)
Pagina de Manual BSD 21 junio 2002 GETPRIORITY(2)