NICE(2) |
Linux Programmer's Manual |
NICE(2) |
名前
nice -プロセスの優先度を変更する
書式
#include <unistd.h>
int nice(int
inc
);
glibc 向けの機能検査マクロの要件 (
feature_test_macros(7) 参照):
nice(): _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE
説明
nice() は
inc の値を
nice を呼んだプロセスの nice 値に加える (nice 値が大きい数値ほど低い優先度を表す)。負の数を指定する、つまり、以前よりも優先度を上げるという指定ができるのはスーパーユーザーだけである。 nice 値の範囲については
getpriority(2) で説明されている。
返り値
成功した場合、新しい nice 値が返る (但し、下記の「注意」を参照)。失敗した場合-1 が返り、
errno がエラーの内容に従って設定される。
エラー
-
EPERM
-
スーパーユーザー以外が
inc に負の数値を指定して優先度を上げようとした。呼び出し元のプロセスが
inc に負の数値を指定して優先度を上げようとしたが、十分な権限を持っていなかった。 Linux では
CAP_SYS_NICE ケーパビリティが必要である。 (
setrlimit(2) のリソース上限
RLIMIT_NICE に関する議論も参照のこと)。
準拠
SVr4, 4.3BSD, POSIX.1-2001. しかし、Linux と (2.2.4より古い) (g)libc では返り値は標準と異なる。詳細は以下を参照のこと。 SVr4 には他に
EINVAL エラーコードについての記述がある。
注意
SUSv2 と POSIX 1003.1-2003 では、
nice() は新しい nice 値を返すと規定されている。一方、Linux システムコールと (2.2.4 より古い) (g)libc ライブラリ関数は成功時に 0 を返す。新しい nice 値は
getpriority(2) を使って取得できる。
glibc 2.2.4 以降では、
nice() は
getpriority(2) を呼び出すライブラリ関数として実装されており、呼び出し元に返す新しい nice 値を
getpriority(2) を呼び出して取得するようになっている。この実装では、正常な動作でも-1 が返される可能性がある。確実にエラーを検出するためには、呼び出しの前に
errno に 0 を設定し、
nice() が-1 を返したときに errno をチェックすると良い。
関連項目
nice(1),
renice(1),
fork(2),
getpriority(2),
setpriority(2),
capabilities(7)
この文書について
この man ページは Linux
man-pages プロジェクトのリリース 3.51 の一部である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。