# pthread_attr_setschedparam

## NAME



           pthread_attr_setschedparam, pthread_attr_getschedparam - set/get
           scheduling parameter attributes in thread attributes object
    


## LIBRARY



           POSIX threads library (_libpthread_ , _-lpthread_)
    


## SYNOPSIS



           **#include <pthread.h>**
    
           **int pthread_attr_setschedparam(pthread_attr_t *restrict** _attr_**,**
                                         **const struct sched_param *restrict** _param_**);**
           **int pthread_attr_getschedparam(const pthread_attr_t *restrict** _attr_**,**
                                         **struct sched_param *restrict** _param_**);**
    


## DESCRIPTION



           The **pthread_attr_setschedparam**() function sets the scheduling
           parameter attributes of the thread attributes object referred to
           by _attr_ to the values specified in the buffer pointed to by _param_.
           These attributes determine the scheduling parameters of a thread
           created using the thread attributes object _attr_.
    
           The **pthread_attr_getschedparam**() returns the scheduling parameter
           attributes of the thread attributes object _attr_ in the buffer
           pointed to by _param_.
    
           Scheduling parameters are maintained in the following structure:
    
               struct sched_param {
                   int sched_priority;     /* Scheduling priority */
               };
    
           As can be seen, only one scheduling parameter is supported.  For
           details of the permitted ranges for scheduling priorities in each
           scheduling policy, see sched(7).
    
           In order for the parameter setting made by
           **pthread_attr_setschedparam**() to have effect when calling
           pthread_create(3), the caller must use
           pthread_attr_setinheritsched(3) to set the inherit-scheduler
           attribute of the attributes object _attr_ to **PTHREAD_EXPLICIT_SCHED**.
    


## RETURN VALUE



           On success, these functions return 0; on error, they return a
           nonzero error number.
    


## ERRORS



           **pthread_attr_setschedparam**() can fail with the following error:
    
           **EINVAL** The priority specified in _param_ does not make sense for the
                  current scheduling policy of _attr_.
    
           POSIX.1 also documents an **ENOTSUP** error for
           **pthread_attr_setschedparam**().  This value is never returned on
           Linux (but portable and future-proof applications should
           nevertheless handle this error return value).
    


## ATTRIBUTES



           For an explanation of the terms used in this section, see
           attributes(7).
           ┌──────────────────────────────────────┬───────────────┬─────────┐
           │ **Interface** │ **Attribute** │ **Value** │
           ├──────────────────────────────────────┼───────────────┼─────────┤
           │ **pthread_attr_setschedparam**(),        │ Thread safety │ MT-Safe │
           │ **pthread_attr_getschedparam**()         │               │         │
           └──────────────────────────────────────┴───────────────┴─────────┘
    


## STANDARDS



           POSIX.1-2008.
    


## NOTES



           See pthread_attr_setschedpolicy(3) for a list of the thread
           scheduling policies supported on Linux.
    


## EXAMPLES



           See pthread_setschedparam(3).
    


* * *