linux 进程属性,设置进程属性-lizeliang.linux-ChinaUnix博客

设置进程属性主要是修改进程PCB中的进程属性:

(1)nice()

功能:用来改变进程的执行优先级,其参数顺序越大优先级越低。只有超级用户才能使用负的优先级。

定义函数:int nice(int inc)返回值:执行成功返回0,否则返回-1,失败原因在errno中。

头文件:#include

(2)setpgid()

功能:setpgid()将pid所指定的进程的组进程设置为pgid指定的组识别码,

若pid为0,则设置当前进程的组进程识别码,

若pgid为0,则会以目前进程的进程识别码来取代。

定义函数:int setpgid(pid_t pid,pid_t pgid)返回值:执行成功返回组识别码,否则返回-1,失败原因在errno中。

头文件:#include

(3)setpgrp()

功能:用来将目前进程的组进程识别码设置为目前进程的进程识别码,等价于setpgid(0,0)

定义函数:int setpgrp(void)返回值:执行成功返回组识别码,否则返回-1,失败原因在errno中。

头文件:#include

(4)setpriority()

功能:用来设置进程,进程组和用户的进程执行优先权。

定义函数:int setpriority(int which,int who,int prio)参数含义:

which:PRIO_PROCESS   who为进程的识别码

PRIO_PGRP     who为进程的组识别码

PRIO_USER     who为用户识别码返回值:执行成功返回0,否则返回-1,失败原因在errno中头文件:#include

例子:

[keven@localhost systemCall]$ cat set_process_information.c

#include #include #include int main(/*int argc,char **argv*/)

{

printf("This process's priotity is:%d",getpriority(PRIO_PROCESS,getpid()));

nice(10);

printf("\nafter nice(10),This process's priority is:%d",getpriority(PRIO_PROCESS,getpid()));

printf("\nThis process's gid is:%d",getpgid(getpid()));

printf("\nThis process's current priority is:%d",getpriority(PRIO_PROCESS,getpid()));

setpriority(PRIO_PROCESS,getpid(),11);

printf("\nthe modify process priority is %d\n",getpriority(PRIO_PROCESS,getpid()));

return 0;

}

[keven@localhost systemCall]$ ./set_process_information

This process's priotity is:0

after nice(10),This process's priority is:10

This process's gid is:6201

This process's current priority is:10

the modify process priority is 11

[keven@localhost systemCall]$

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值