Setting a fixed priority with the setpri subroutine
An application that runs under the root user ID can use the setpri() subroutine to set its own priority or that of another process.
For example:
retcode = setpri(0,59);
would give the current process a fixed priority of 59. If the setpri() subroutine fails, it returns -1.
The following program accepts a priority value
and a list of process IDs and sets the priority of all of the processes to
the specified value.
/*
fixprocpri.c
Usage: fixprocpri priority PID . . .
*/
#include <sys/sched.h>
#include <stdio.h>
#include <sys/errno.h>
main(int argc,char **argv)
{
pid_t ProcessID;
int Priority,ReturnP;
if( argc < 3 ) {
printf(" usage - setpri priority pid(s) \n");
exit(1);
}
argv++;
Priority=atoi(*argv++);
if ( Priority < 50 ) {
printf(" Priority must be >= 50 \n");
exit(1);
}
while (*argv) {
ProcessID=atoi(*argv++);
ReturnP = setpri(ProcessID, Priority);
if ( ReturnP > 0 )
printf("pid=%d new pri=%d old pri=%d\n",
(int)ProcessID,Priority,ReturnP);
else {
perror(" setpri failed ");
exit(1);
}
}
}