setpriority(2) FreeBSD 一般コマンドマニュアル

setpriority

前のページ 上に戻る 次のページ

setpriority




書式

     #include <sys/time.h>
     #include <sys/resource.h>

     int
     getpriority(int which, int who);

     int
     setpriority(int which, int who, int prio);


解説

     which および who で指示されるプロセス、プロセスグループ、またはユーザのス
     ケジュール優先順位は getpriority() 呼び出しで取得され、 setpriority() 呼
     び出しで設定されます。 which は、 PRIO_PROCESS, PRIO_PGRP または
     PRIO_USER のどれかであり、 whowhich に関連して解釈されます
     (PRIO_PROCESS の場合はプロセス識別子、 PRIO_PGRP の場合はプロセスグループ
     識別子、および PRIO_USER の場合はユーザ ID)。 who の値が 0 であるのは、現
     在のプロセス、プロセスグループ、またはユーザを表します。 prio は -20 から
     20 の範囲の値です。デフォルトの優先順位は 0 です。優先順位が低いと、スケ
     ジュール調整にはより都合がよくなります。

     getpriority() 呼び出しは、指定のプロセスのいずれかが享受する最高の優先順
     位を返してきます (最も小さい数値です)。 setpriority() 呼び出しは、指定さ
     れたすべてのプロセスの優先順位を指定の値に設定します。スーパユーザだけが
     優先順位を低くできます。


戻り値

     getpriority() は処理を正しく完了しても値 -1 を返すことがあるので、呼び出
     しの前に外部変数 errno をクリアしてから、後にこれをチェックして -1 がエラ
     ーであるか、または正当な値であるか判定する必要があります。

     関数 setpriority() は、処理が成功すると値 0 を返します。そうでない場合、
     値 -1 が返され、グローバル変数 errno が設定されてエラーを示します。


エラー

     getpriority() と setpriority() は次の場合に失敗します。

     [ESRCH]            指定された whichwho の値を使用して、プロセスが見つ
                        かりませんでした。

     [EINVAL]           which が PRIO_PROCESS, PRIO_PGRP または PRIO_USER のど
                        れでもありませんでした。

     上記のエラーだけでなく、 setpriority() は次の場合に失敗します。

     [EPERM]            プロセスは検出されたものの、その実効 ID も実ユーザ ID
                        のどちらも、呼び出し側の実効ユーザ ID に一致しませんで
                        した。

     [EACCES]           スーパユーザでないものがプロセスの優先順位を下げようと
                        しました。

ABELNET VPSサービス