The sched_setscheduler system call sets the scheduling policy and scheduling parameters of the process specified by pid to policy and the parameters specified in the
.Vt sched_param structure pointed to by param, respectively. The value of the sched_priority member in the param structure must be any integer within the inclusive priority range for the scheduling policy specified by policy.
In this implementation, if the value of pid is negative the system call will fail.
If a process specified by pid exists and if the calling process has permission, the scheduling policy and scheduling parameters will be set for the process whose process ID is equal to pid.
If pid is zero, the scheduling policy and scheduling parameters are set for the calling process.
In this implementation, the policy of when a process can affect the scheduling parameters of another process is specified in -p1003.1b-93 as a write-style operation.
The scheduling policies are in <sched.h>: