tail head cat sleep
QR code linking to this page

manページ  — GETPRIORITY

名称

getpriority, setpriority – プログラムスケジュール優先順位を取得 / 設定する

内容

ライブラリ

Standard C Library (libc, -lc)

書式

#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 がエラーであるか、 または正当な値であるか判定する必要があります。

The setpriority function returns the value 0 if successful; otherwise the value -1 is returned and the global variable errno is set to indicate the error.

エラー

getpriority()setpriority() システムコールは次の場合に失敗します:
[ESRCH]
  指定された whichwho の値を使用しているプロセスが見つかりませんでした。
[EINVAL]
  which 引数が PRIO_PROCESS, PRIO_PGRP または PRIO_USER のどれでもありませんでした。

上記のエラーだけでなく、 setpriority() は次の場合に失敗します:
[EPERM]
  プロセスは検出されたものの、その実効 ID も実ユーザ ID の どちらも、呼び出し側の実効ユーザ ID に一致しませんでした。
[EACCES]
  スーパユーザでないものがプロセスの優先順位を下げようとしました。

関連項目

nice(1), fork(2), renice(8)

歴史

getpriority() システムコールは BSD 4.2 ではじめて登場しました。

GETPRIORITY (2) June 4, 1993

tail head cat sleep
QR code linking to this page


このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.

Computer science would have progressed much further and faster if all of the time and effort that has been spent maintaining and nurturing Unix had been spent on a sounder operating system.
— The Unix Haters' handbook