# sched_setscheduler

## PROLOG



           This manual page is part of the POSIX Programmer's Manual.  The
           Linux implementation of this interface may differ (consult the
           corresponding Linux manual page for details of Linux behavior), or
           the interface may not be implemented on Linux.
    


## NAME



           sched_setscheduler — set scheduling policy and parameters
           (**REALTIME**)
    


## SYNOPSIS



           #include <sched.h>
    
           int sched_setscheduler(pid_t _pid_ , int _policy_ ,
               const struct sched_param *_param_);
    


## DESCRIPTION



           The _sched_setscheduler_() function shall set the scheduling policy
           and scheduling parameters of the process specified by _pid_ to
           _policy_ and the parameters specified in the **sched_param** structure
           pointed to by _param_ , respectively. The value of the _sched_priority_
           member in the **sched_param** structure shall be any integer within
           the inclusive priority range for the scheduling policy specified
           by _policy_.  If the value of _pid_ is negative, the behavior of the
           _sched_setscheduler_() function is unspecified.
    
           The possible values for the _policy_ parameter are defined in the
           _< sched.h>_ header.
    
           If a process specified by _pid_ exists, and if the calling process
           has permission, the scheduling policy and scheduling parameters
           shall be set for the process whose process ID is equal to _pid_.
    
           If _pid_ is zero, the scheduling policy and scheduling parameters
           shall be set for the calling process.
    
           The conditions under which one process has appropriate privileges
           to change the scheduling parameters of another process are
           implementation-defined.
    
           Implementations may require that the requesting process have
           permission to set its own scheduling parameters or those of
           another process.  Additionally, implementation-defined
           restrictions may apply as to the appropriate privileges required
           to set the scheduling policy of the process, or the scheduling
           policy of another process, to a particular value.
    
           The _sched_setscheduler_() function shall be considered successful
           if it succeeds in setting the scheduling policy and scheduling
           parameters of the process specified by _pid_ to the values specified
           by _policy_ and the structure pointed to by _param_ , respectively.
    
           See _Scheduling Policies_ for a description on how this function
           affects the scheduling of the threads within the target process.
    
           If the current scheduling policy for the target process is not
           SCHED_FIFO, SCHED_RR, or SCHED_SPORADIC, the result is
           implementation-defined; this case includes the SCHED_OTHER policy.
    
           The specified _sched_ss_repl_period_ shall be greater than or equal
           to the specified _sched_ss_init_budget_ for the function to succeed;
           if it is not, then the function shall fail.
    
           The value of _sched_ss_max_repl_ shall be within the inclusive range
           [1,{SS_REPL_MAX}] for the function to succeed; if not, the
           function shall fail. It is unspecified whether the
           _sched_ss_repl_period_ and _sched_ss_init_budget_ values are stored as
           provided by this function or are rounded to align with the
           resolution of the clock being used.
    
           This function is not atomic with respect to other threads in the
           process. Threads may continue to execute while this function call
           is in the process of changing the scheduling policy and associated
           scheduling parameters for the underlying kernel-scheduled entities
           used by the process contention scope threads.
    


## RETURN VALUE



           Upon successful completion, the function shall return the former
           scheduling policy of the specified process. If the
           _sched_setscheduler_() function fails to complete successfully, the
           policy and scheduling parameters shall remain unchanged, and the
           function shall return a value of -1 and set _errno_ to indicate the
           error.
    


## ERRORS



           The _sched_setscheduler_() function shall fail if:
    
           **EINVAL** The value of the _policy_ parameter is invalid, or one or
                  more of the parameters contained in _param_ is outside the
                  valid range for the specified scheduling policy.
    
           **EPERM** The requesting process does not have permission to set
                  either or both of the scheduling parameters or the
                  scheduling policy of the specified process.
    
           **ESRCH** No process can be found corresponding to that specified by
                  _pid_.
    
           _The following sections are informative._
    


## EXAMPLES



           None.
    


## APPLICATION USAGE



           None.
    


## RATIONALE



           None.
    


## FUTURE DIRECTIONS



           None.
    


* * *