sched_setparam()
QNX SDP8.0C Library ReferenceAPIDeveloper
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 OS, 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:
| Safety: | |
|---|---|
| Cancellation point | No | 
| Signal handler | Yes | 
| Thread | Yes | 
Page updated: 
