37.5. スケジューラーポリシーの有効範囲の表示
sched_get_priority_min() 関数および sched_get_priority_max() 関数を使用して、特定のスケジューラーポリシーの有効な優先順位の範囲を確認できます。
手順
sched_get.cソースファイルを作成し、テキストエディターで開きます。$ {EDITOR} sched_get.cファイルに以下のコマンドを入力します。
#include <stdio.h> #include <unistd.h> #include <sched.h> int main() { printf("Valid priority range for SCHED_OTHER: %d - %d\n", sched_get_priority_min(SCHED_OTHER), sched_get_priority_max(SCHED_OTHER)); printf("Valid priority range for SCHED_FIFO: %d - %d\n", sched_get_priority_min(SCHED_FIFO), sched_get_priority_max(SCHED_FIFO)); printf("Valid priority range for SCHED_RR: %d - %d\n", sched_get_priority_min(SCHED_RR), sched_get_priority_max(SCHED_RR)); return 0; }指定されたスケジューラーポリシーがシステムに認識されていない場合、関数は
-1を返し、errnoはEINVALに設定されます。SCHED_FIFOおよびSCHED_RRはどちらも1~99の範囲内の任意の数値にすることができます。POSIX がこの範囲に従う保証はありませんが、移植可能なプログラムはこれらの関数を使用する必要があります。- ファイルを保存して、エディターを終了します。
プログラムをコンパイルします。
$ gcc sched_get.c -o msched_getこれで
sched_getプログラムの準備が整い、保存先のディレクトリーから実行できるようになりました。ヒント優先度関数に関する詳細は、お使いのシステムの
sched_get_priority_min(2)およびsched_get_priority_max(2) のman ページを参照してください。