34.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; }