Change the priority of a process
Synopsis:
#include <sched.h>
int sched_setparam(
pid_t pid,
const struct sched_param *param );
Arguments:
- pid
- The ID of the process whose priority you want to set, or 0 to set it
for the current process.
- param
- A pointer to a
sched_param
structure whose
sched_priority member holds the priority that you want to
assign to the process.
Library:
libc
Use the -l c option to
qcc
to link against this library.
This library is usually included automatically.
Description:
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.
Note:
- In QNX Neutrino, scheduling is associated with threads, not processes, so
sched_setparam() sets the scheduling
parameters for thread 1 in the process pid, or for the
calling thread if pid is 0.
- In order to set the priority for a process whose user ID is different from
the calling process's real or effective user ID, your process must have the
PROCMGR_AID_SCHEDULE ability enabled.
In order to change its priority to a value above the maximum permitted for unprivileged processes,
your process must have the PROCMGR_AID_PRIORITY ability enabled.
For more information, see
procmgr_ability().
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 policy are inherited
from or explicitly set by the parent process.
Once running, the child process may change its priority by using this
function.
Returns:
- 0
- Success.
- -1
- An error occurred (errno is set).
Errors:
- EFAULT
- A fault occurred while trying to access the buffers provided.
- EINVAL
- The priority isn't a valid priority.
- EPERM
- The calling process doesn't have the required permission; see
procmgr_ability().
- ESRCH
- The process pid doesn't exist.
Classification:
POSIX 1003.1 PS
Safety: |
|
Cancellation point |
No |
Interrupt handler |
No |
Signal handler |
Yes |
Thread |
Yes |