40.2. ライブラリー呼び出しを使用したプロセス優先度の設定
スケジューラーポリシーおよびその他のパラメーターは、sched_setscheduler() 関数を使用して設定できます。現在、リアルタイムポリシーには、sched_priority というパラメーターがあります。このパラメーターは、プロセスの優先度を調整するために使用されます。
sched_setscheduler() 関数には、sched_setscheduler(pid_t pid, int policy, const struct sched_param *sp); 形式の 3 つのパラメーターが必要です。
sched_setscheduler(2) の man ページには、エラーコードを含む 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;
}