34.4. スケジューラーポリシーの有効範囲の表示

sched_get_priority_min() 関数および sched_get_priority_max() 関数を使用して、特定のスケジューラーポリシーの有効な優先順位の範囲を確認できます。

手順

  1. sched_get.c ソースファイルを作成し、テキストエディターで開きます。

    $ {EDITOR} sched_get.c
  2. ファイルに以下のコマンドを入力します。

    #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 を返し、errnoEINVAL に設定されます。

    注記

    SCHED_FIFO および SCHED_RR はどちらも 1 ~ 99 の範囲内の任意の数値にすることができます。POSIX がこの範囲に従う保証はありませんが、移植可能なプログラムはこれらの関数を使用する必要があります。

  3. ファイルを保存して、エディターを終了します。
  4. プログラムをコンパイルします。

    $ gcc sched_get.c -o msched_get

これで sched_get プログラムの準備が整い、保存先のディレクトリーから実行できるようになりました。

関連情報

  • sched_get_priority_min(2) の man ページ
  • sched_get_priority_max(2) の man ページ