进程优先级之setpriority系统调用

unix提供了setpriority系统调用用于设置进程,进程组,用户进程的优先级。

long setpriority(int which,int who,int niceval)

setpriority系统调用实际上是修改进程的nice值。nice值越小,进程的优先级越高。

参数which决定修改优先级的类型。他的值是PRIO_PROCESS,PRIO_PGRP,PRIO_USER中的一个。

#define PRIO_PROCESS    0   //进程
#define PRIO_PGRP   1   //进程组
#define PRIO_USER   2   //用户进程

当which为PRIO_PROCESS时,如果参数who为0,则设置当前进程的进程优先级;如果参数who不为0,则设置进程号为who的进程的优先级。只有超级用户或者当前用户的进程可以设置,当调低进程的nice值(提高优先级)需要超级用户的权限。

当which为PRIO_PGRP时,如果参数who为0,则设置当前进程组的优先级;参数who不为0,则设置进程组号为who的进程组的优先级。只有超级用户或者当前用户的进程可以设置,当调低进程的nice值(提高优先级)需要超级用户的权限。

当which为PRIO_USER时,如果参数who为0,则设置当前用户进程的优先级;参数who不为0,则设置用户ID为who的进程的优先级。
只有超级用户或者当前用户的进程可以设置,当调低进程的nice值(提高优先级)需要超级用户的权限。

当系统调用执行成功,则返回0。若执行失败,则返回-1,错误号放入errno中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值