GETPRIORITY(2) FreeBSD システムコールマニュアル GETPRIORITY(2)
名称
getpriority, setpriority − プログラムスケジュール優先順位を取得 / 設定す る |
ライブラリ
標準 C ライブラリ (libc, −lc) |
書式
#include <sys/time.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 のどれかであり、 who は which に関連して解釈さ れます (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]
指定された which と who の値を使用しているプロセスが見 つかりませんでした。 [EINVAL] 上記のエラーだけでなく、 setpriority() は次の場合に失敗します: [EPERM] [EACCES] 関連項目 |
歴史
getpriority() システムコールは 4.2BSD ではじめて登場しました。 FreeBSD 10.0 June 4, 1993 FreeBSD 10.0 |