44.2. 使用库调用设置进程优先级
可以使用 sched_setscheduler()
函数来设置调度程序策略和其他参数。目前,实时策略具有一个参数,sched_priority
。这个参数用于调整进程的优先级。
sched_setscheduler()
函数需要三个参数,格式为: sched_setscheduler(pid_t pid, int policy, const struct sched_param *sp);
.
注意
sched_setscheduler(2)
man page 列出了 sched_setscheduler
的所有可能返回值,包括错误代码。
如果进程 ID 为零,sched_setscheduler()
函数将作用于调用的进程。
以下代码摘录将当前进程的调度程序策略设置为 SCHED_FIFO
调度程序策略,并将优先级设置为 50
:
struct sched_param sp = { .sched_priority = 50 }; int ret; ret = sched_setscheduler(0, SCHED_FIFO, &sp); if (ret == -1) { perror("sched_setscheduler"); return 1; }