sched_setparam, sched_getparam - set and get scheduling parameters
#include <sched.h>
int sched_setparam(pid_t pid, const struct sched_param *param);
int sched_getparam(pid_t pid, struct sched_param *param);
struct sched_param {
...
int sched_priority;
...
};
sched_setparam() sets the scheduling parameters associated with the scheduling policy for the thread whose thread ID is specified in pid
. If pid
is zero, then the parameters of the calling thread are set. The interpretation of the argument param
depends on the scheduling policy of the thread identified by pid
. See sched(7) for a description of the scheduling policies supported under Linux.
sched_getparam() retrieves the scheduling parameters for the thread identified by pid
. If pid
is zero, then the parameters of the calling thread are retrieved.
sched_setparam() checks the validity of param
for the scheduling policy of the thread. The value param->sched_priority
must lie within the range given by sched_get_priority_min(2) and sched_get_priority_max(2).
For a discussion of the privileges and resource limits related to scheduling priority and policy, see sched(7).
POSIX systems on which sched_setparam() and sched_getparam() are available define _POSIX_PRIORITY_SCHEDULING in <unistd.h>
.
On success, sched_setparam() and sched_getparam() return 0. On error, -1 is returned, and errno
is set appropriately.
Invalid arguments: param
is NULL or pid
is negative
(sched_setparam()) The argument param
does not make sense for the current scheduling policy.
(sched_setparam()) The caller does not have appropriate privileges (Linux: does not have the CAP_SYS_NICE capability).
The thread whose ID is pid
could not be found.
POSIX.1-2001, POSIX.1-2008.
getpriority(2), gettid(2), nice(2), sched_get_priority_max(2), sched_get_priority_min(2), sched_getaffinity(2), sched_getscheduler(2), sched_setaffinity(2), sched_setattr(2), sched_setscheduler(2), setpriority(2), capabilities(7), sched(7)
This page is part of release 5.10 of the Linux man-pages
project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at https://www.kernel.org/doc/man-pages/.