Chinaunix首页 | 论坛 | 博客
  • 博客访问: 191990
  • 博文数量: 219
  • 博客积分: 1435
  • 博客等级: 中尉
  • 技术积分: 1388
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-17 09:27
文章分类

全部博文(219)

文章存档

2013年(2)

2012年(183)

2011年(34)

我的朋友

分类:

2012-09-14 18:01:42

原文地址:调整进程运行的优先级 作者:ubuntuer

【函 数 名】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     /* printf */
  2. #include    /* atoi, system, exit */
  3. #include     /* errno */
  4. #include    /* strerror */
  5. #include    /* 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


阅读(338) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~