# sched_setparam

## 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_setparam — set scheduling parameters (**REALTIME**)
    


## SYNOPSIS



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


## DESCRIPTION



           The _sched_setparam_() function shall set the scheduling parameters
           of the process specified by _pid_ to the values specified by the
           **sched_param** structure pointed to by _param_.  The value of the
           _sched_priority_ member in the **sched_param** structure shall be any
           integer within the inclusive priority range for the current
           scheduling policy of the process specified by _pid_.  Higher
           numerical values for the priority represent higher priorities.  If
           the value of _pid_ is negative, the behavior of the _sched_setparam_()
           function is unspecified.
    
           If a process specified by _pid_ exists, and if the calling process
           has permission, the scheduling parameters shall be set for the
           process whose process ID is equal to _pid_.
    
           If _pid_ is zero, the scheduling parameters shall be set for the
           calling process.
    
           The conditions under which one process has permission to change
           the scheduling parameters of another process are implementation-
           defined.
    
           Implementations may require the requesting process to have
           appropriate privileges to set its own scheduling parameters or
           those of another process.
    
           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 for the
           underlying kernel-scheduled entities used by the process
           contention scope threads.
    


## RETURN VALUE



           If successful, the _sched_setparam_() function shall return zero.
    
           If the call to _sched_setparam_() is unsuccessful, the priority
           shall remain unchanged, and the function shall return a value of
           -1 and set _errno_ to indicate the error.
    


## ERRORS



           The _sched_setparam_() function shall fail if:
    
           **EINVAL** One or more of the requested scheduling parameters is
                  outside the range defined for the scheduling policy of the
                  specified _pid_.
    
           **EPERM** The requesting process does not have permission to set the
                  scheduling parameters for the specified process, or does
                  not have appropriate privileges to invoke _sched_setparam_().
    
           **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.
    


* * *