Linux提供了获取和设置进程nice value的系统调用。最简单的方式是调用nice():
#include
int nice(int inc);
nice()调用成功时,会在现有的nice value上增加inc,并返回更新后的值。只有拥有
CAP_SYS_NICE权限的进程(root)才可以使用负值inc,减少nice value,从而提升该
进程的优先级。因此,非root用户的进程只能降低优先级。
出错时,nice()返回-1.但是,由于nice调用会返回更新后的值,-1也可能是成功时返回
的值。因此,为了判断调用是否成功,在调用前应该先把errno值置为0,然后,在调用
后再检查errno值。
获得当前优先级的一种简单方式是给nice()函数传递参数0:
printf(" nice value is currently %d\n",nice(0));
通常,当进程需要设置绝对优先级而不是相对增量的时候,可以使用如下代码:
编译:
运行: