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.

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() .

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 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

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.

Last modified: 2013-12-23

comments powered by Disqus