NICE - Linux手册页

时间:2019-08-20 17:59:03  来源:igfitidea点击:

Linux程序员手册 第2部分
更新日期: 2017-09-15

名称

nice-更改流程优先级

语法

#include <unistd.h>
int nice(int inc);

glibc的功能测试宏要求(请参阅feature_test_macros(7)):

nice():_ XOPEN_SOURCE
|| / 自glibc 2.19起:/ -_DEFAULT_SOURCE
|| / * Glibc版本

说明

nice()将inc添加到调用线程的nice值。 (较高的nice值表示较低的优先级。)

nice值的范围是+19(低优先级)到-20(高优先级)。尝试将超出范围的值设置为该范围。

传统上,只有特权进程才能降低nice值(即,设置更高的优先级)。但是,从Linux 2.6.12开始,无特权的进程可能会降低具有合适的RLIMIT_NICE软限制的目标进程的值。有关详细信息,请参见getrlimit(2)。

返回值

成功后,将返回新的nice值(但请参见下面的NOTES)。如果出错,则返回-1,并正确设置errno。

成功的呼叫可以合法地返回-1。要检测错误,请在调用之前将errno设置为0,并在nice()返回-1之后检查它是否为非零。

错误说明

EPERM
调用进程试图通过提供一个负数inc来增加其优先级,但特权不足。在Linux下,需要CAP_SYS_NICE功能。 (但是请参阅setrlimit(2)中有关RLIMIT_NICE资源限制的讨论。)

遵循规范

POSIX.1-2001,POSIX.1-2008,SVr4、4.3BSD。但是,原始系统调用和(g)libc(早于glibc 2.2.4)的返回值是非标准的,请参见下文。

备注

有关nice值的更多详细信息,请参见sched(7)。

注意:Linux 2.6.38中增加了"自动分组"功能,这意味着在许多情况下,nice值不再具有其传统效果。有关详细信息,请参见sched(7)。

C library/kernel differences

POSIX.1指定nice()应该返回新的nice值。但是,原始Linux系统调用成功返回0。同样,glibc 2.2.3和更早版本中提供的nice()包装函数在成功时返回0。

从glibc 2.2.4开始,glibc提供的nice()包装函数通过调用getpriority(2)获得新的nice值来提供与POSIX.1的一致性,然后将其返回给调用者。

另外参见

nice(1),renice(1),fork(2),getpriority(2),getrlimit(2),setpriority(2),capabilities(7),sched(7)

出版信息

这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/