This version of this document is no longer maintained. For the latest documentation, see http://www.qnx.com/developers/docs. |
Change the priority of a process
#include <sched.h> int sched_setparam( pid_t pid, const struct sched_param *param );
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
The sched_setparam() function changes the priority of process pid to that of the sched_priority member in the sched_param structure pointed to by param. If pid is zero, the priority of the calling process is changed.
The sched_priority member in param must lie between the minimum and maximum values returned by sched_get_priority_max() and sched_get_priority_min().
By default, the process priority and scheduling algorithm are inherited from or explicitly set by the parent process. Once running, the child process may change its priority by using this function.
Safety: | |
---|---|
Cancellation point | No |
Interrupt handler | No |
Signal handler | Yes |
Thread | Yes |
Currently, the implementation of sched_setparam() isn't 100% POSIX 1003.1-1996. The sched_setparam() function sets the scheduling parameters for thread 1 in the process pid, or for the calling thread if pid is 0.
If you depend on this in new code, it will not be portable. POSIX 1003.1 says sched_setparam() should return -1 and set errno to EPERM in a multithreaded application.
errno, getprio(), sched_getparam(), sched_get_priority_max(), sched_get_priority_min(), sched_getscheduler(), sched_param, sched_setscheduler(), sched_yield(), setprio()