Получить текущие параметры планирования процесса
#include <sched.h>int sched_getparam( pid_t pid,struct sched_param *param );
0
, чтобы получить их для текущего процесса.libc
Функция sched_getparam() получает текущие параметры планирования (включая исходный и текущий приоритеты) процесса, указанного pid, и помещает их в struct sched_param, на который указывает param.
Если pid равен нулю, функция возвращает параметры для вызывающего процесса.
#include <sched.h>#include <stdio.h>#define PRIORITY_ADJUSTMENT 5int main( void ){int max_priority;struct sched_param param;/* Find out the MAX priority for the FIFO Scheduler */max_priority = sched_get_priority_max( SCHED_FIFO );/* Find out what the current priority is. */sched_getparam( 0, ¶m );printf( "The assigned priority is %d.\n", param.sched_priority );printf( "The current priority is %d.\n", param.sched_curpriority );param.sched_priority = ((param.sched_curpriority + PRIORITY_ADJUSTMENT) <= max_priority) ?(param.sched_curpriority + PRIORITY_ADJUSTMENT) : -1;if ( param.sched_priority == -1 ){printf( "Cannot increase the priority by %d. Try a smaller value\n",PRIORITY_ADJUSTMENT );return (0);}sched_setscheduler( 0, SCHED_FIFO, ¶m );sched_getparam( 0, &qparam );printf( "The newly assigned priority is %d.\n", param.sched_priority );printf( "The current priority is %d.\n", param.sched_curpriority );return (0);}
POSIX 1003.1 Process Scheduling
В многопоточной программе sched_getparam() возвращает параметры планирования для потока 1
в процессе pid или для вызывающего потока, если pid равен 0
.
struct sched_param, errno, getprio(), sched_get_priority_max(), sched_get_priority_min(), sched_getscheduler(), sched_setparam(), sched_setscheduler(), sched_yield(), setprio()
Предыдущий раздел: Описание API системной библиотеки