Linux C语言库函数参考 — nice

原创 2006年05月20日 16:35:00

【函 数 名】nice — 调整进程运行的优先级

【函数原型】int nice(int inc);

【相关头文件】unistd.h

【函数说明】

在Linux中,进程运行的优先级分为-20~19等40个级别,其中,数值越小运行优先级越高,数值越大运行优先级越低。显而易见,优先级 -20的运行优先级最高,优先级19的运行优先级最低。函数nice是将当前进程运行的优先级增加指定值,既用当前进程运行的优先级加上指定值得到新的优先级,然后用新的优先级运行该进程。当计算出来的值小于-20,则进程将以优先级-20运行;当计算出来的值大于19,则进程将以优先级19运行。若增加正值,则表示降低进程运行优先级;若增加负值,则表示升高进程运行优先级。但只有具有超级用户权限的用户才可以以负数作为函数的参数,否则该函数将返回错误。

【参数说明】

inc [IN] 指定优先级增加的值

【函数返回值】

若操作成功,函数将返回调整后的进程运行的优先级;

若操作失败,函数将返回-1。

注意:当函数返回-1时,不一定就是函数操作失败。因为若函数成功调整进程运行优先级后的优先级为-1,函数也返回-1,所以在判断函数是否操作失败时,除了判断函数返回的值是否为-1外,还需要查看 errno的值是否为相关错误码,详见“程序示例”。

【相关错误码】

EACCES 无操作权限,既非超级用户权限的用户用负值作为参数调用该函数。

【程序示例】

  1. #include <stdio.h>    /* printf */
  2. #include <stdlib.h>   /* atoi, system, exit */
  3. #include <errno.h>    /* errno */
  4. #include <string.h>   /* strerror */
  5. #include <unistd.h>   /* nice */
  6.
  7. int main(int argc, char *argv[])
  8. {
  9.     int adjustment = 0;
 10.     int ret;
 11.     if ( argc > 1 ) {
 12.         adjustment = atoi( argv[1] );
 13.     }
 14.     ret = nice( adjustment );
 15.     printf( "nice(%d):%d/n", adjustment, ret );
 16.     if ( -1 == ret ) {
 17.         if ( errno == EACCES ) {
 18.             printf( "Cannot set priority:%s./n", strerror( errno ) );
 19.             exit(-1);
 20.         }
 21.     }
 22.     system("nice");
 23.     exit(0);
 24. }
 

参考文献:

[1] Linux man pages

相关文章推荐

Linux 下nice 函数用法提高一个进程的友善值

Linux不会随意对进程进行调度。事实上,应用程序会被指派优先级,优先级会对进程何时运行以及运行多久造成影响。以往,Unix将优先级成为友善值(nice value),因为友善值背后的概念是通过调低一...
  • coloriy
  • coloriy
  • 2015年10月30日 13:32
  • 1035

通过系统调用nice改变进程优先级

问题提出:为什么用nice系统调用降低进程优先级不成功 nice系统调用 nice函数声明:#include        int nice(int increment); nice系统调用包含g...
  • dela_
  • dela_
  • 2016年07月26日 17:46
  • 1121

Linux命令详解 — nice

【命令】nice — 调整程序运行的优先级 【格式】nice [OPTION] [command [arguments...]] 【说明】 在当前程序运行优先级基础之上调整指定值得到新的程序运行优先级...

linux nice 命令详解

nice :新执行的指令即给予新的 nice 值 [root@www ~]# nice [-n 數字] command 选项与參數: -n :后面接一個數值,數值的范围 -20 ~ 19。 ...

Linux改变进程优先级的Nice命令

本文所述Nice与Renice命令已由管理员在Debian与CentOS中测试通过 VPS普遍性能不高,很多人可能有这样一个感受,在执行du、tar等命令时,会造成系统负载飙升,Apache响应缓慢...

Linux 下nice/renice命令小结

Linux 下nice/renice命令小结 2010-03-30 12:58 1.1.1 nice命令 内核根据进程的nice值决定进程需要多少处理器时间. nice值的取值...
  • sevedk
  • sevedk
  • 2012年03月28日 11:06
  • 4615

linux进程优先级、进程nice值(转载)

网络收集,自学自用~ 进程cpu资源分配就是指进程的优先权(priority)。优先权高的进程有优先执行权利。配置进程优先权对多任务环境的linux很有用,可以改善系统性能。还可以把...

Linux下C语言编程——文件操作

#include ;#include ;#include ;#include ;int open(const char *pathname,int flags);int open(const char...

关于Linux的快速启动(fastboot)和低功耗(low power)的学习记录

我今天想查一下Intel工程师放在CSDN的一个视频,名字倒是查出来叫:Moblin系统的快速启动核心技术剖析,但是怎么找也找不找了。这是一个好的技术介绍。难道给删除了。不知道CSDN是否上次查图片的...

android两种方式获取AsyncTask返回值

获取AsyncTask返回值,在Activity中使用。 标签:  代码片段(4)[全屏查看所有代码] 1. [代码][Java]代码      ? 1 2 3...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Linux C语言库函数参考 — nice
举报原因:
原因补充:

(最多只允许输入30个字)