sched_setparam()

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.

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 trying to access the buffers provided.
EINVAL
The priority isn't a valid priority.
EPERM
The calling process doesn't have sufficient privilege to set the priority.
ESRCH
The process pid doesn't exist.

Classification:

POSIX 1003.1 PS

Safety:
Cancellation point No
Interrupt handler No
Signal handler Yes
Thread Yes

Caveats:

In a multithreaded program, sched_setparam() sets the scheduling parameters for thread 1 in the process pid, or for the calling thread if pid is 0.

See also:

errno, getprio(), pthread_getschedparam(), pthread_setschedparam(), pthread_setschedprio(), sched_getparam(), sched_get_priority_max(), sched_get_priority_min(), sched_getscheduler(), sched_param, sched_setscheduler(), sched_yield(), setprio()

Thread scheduling in the QNX Neutrino Microkernel chapter of the System Architecture guide

Scheduling policies in the Programming Overview chapter of the QNX Neutrino Programmer's Guide