標準/拡張機能 | C/C++ | 依存項目 |
---|---|---|
XPG4.2 |
両方 |
#define _XOPEN_SOURCE_EXTENDED 1
#include <sys/resource.h>
int setpriority(int which, id_t who, int priority);
setpriority() は、プロセス、プロセス・グループ、またはユーザーの スケジューリング優先順位を設定します。
who 引数は、ID (プロセス、プロセス・グループ、またはユーザー) を指定します。who 引数の 0 (ゼロ) 値は、現行プロセス、プロセス・グループ、またはユーザー ID を指定します。
priority 引数は、スケジューリング優先順位を指定します。これは、-20 ~ 19 までの範囲の符号付き整数として指定されます。負の優先順位のほうが、有利なスケジューリングになります。デフォルトの優先順位は、0 です。setrlimit() に指定された値がシステムの最下位サポート優先度の値より小さい場合には、システムの最下位サポート値が使用されます。システムの最高位サポート値より大きい場合には、システムの最高位サポート値が使用されます。プロセスのスケジューリング優先順位値の設定は、プロセス の nice 値に対し等しい効果を持ちます。これらが両方ともプロセス の相対 CPU 優先順位を表すためです。例えば、スケジューリング優先順位値をその最大値 (19) に設定することは 、nice 値をその最大値 ((2*NZERO)-1) にまで増加するのと等しい 効果があり、nice()、getpriority()、および setpriority() 関数 に反映されます。
複数のプロセスが指定されると、setpriority() は、すべての指定プロセスの優先順位を指定の値に設定します。
該当する特権があるプロセスだけが、その優先順位を下げることができます。
正常に実行された場合、setpriority() は 0 を戻します。