进程优先级之getpriority系统调用
2017-08-22 19:37
197 查看
unix提供了getpriority系统调用用于返回进程,进程组,用户进程的进程优先级。
getpriority系统调用实际返回的是进程的nice值,只是对nice值做了转化,返回的是20-nice值。进程的nice值越小,进程的优先级越高。
参数which是PRIO_PROCESS,PRIO_PGRP,PRIO_USER中的一个。
当参数which为PRIO_PROCESS时,参数who为0,则返回当前进程的进程优先级;参数who不为0,则返回进程号为who的进程的优先级。
当参数which为PRIO_PGRP时,参数who为0,则返回当前进程组的优先级;参数who不为0,则返回进程组号为who的进程组的优先级。进程组的优先级为进程组中优先级最高的进程的优先级。
当参数which为PRIO_USER时,参数who为0,则返回当前用户进程的优先级;参数who不为0,则返回用户ID为who的进程的优先级。用户进程的优先级为进程中优先级最高的进程的优先级。
当系统调用执行成功,则返回优先级。若执行失败,则返回-1,错误号放入errno中。
long getpriority(int which,int who)
getpriority系统调用实际返回的是进程的nice值,只是对nice值做了转化,返回的是20-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的进程的优先级。
当参数which为PRIO_PGRP时,参数who为0,则返回当前进程组的优先级;参数who不为0,则返回进程组号为who的进程组的优先级。进程组的优先级为进程组中优先级最高的进程的优先级。
当参数which为PRIO_USER时,参数who为0,则返回当前用户进程的优先级;参数who不为0,则返回用户ID为who的进程的优先级。用户进程的优先级为进程中优先级最高的进程的优先级。
当系统调用执行成功,则返回优先级。若执行失败,则返回-1,错误号放入errno中。
相关文章推荐
- 进程优先级之nice系统调用
- 注意!GetThreadPriority的返回值不是系统的优先级值
- 注意!GetThreadPriority的返回值不是系统的优先级值
- 进程,ps,优先级,前后台调用,进程信号,用户登录审计,top,系统服务的控制
- 通过系统调用nice改变进程优先级
- 进程优先级之setpriority系统调用
- 内存分配的原理__进程分配内存有两种方式,分别由两个系统调用完成:brk和mmap(不考虑共享内存)
- c#关闭系统进程以及如何调用cmd并执行命令
- Socket进程处理被中断的系统调用及Accept函数返回EINTR错误处理
- Blog7@linux进程查看、优先级改变,前后台调用、及其信号的介绍
- 调用系统函数pthread_cancel取消进程的其他线程
- c#调用GetModuleFileNameEx获取进程路径
- 【进程间通信】系统调用ptrace()和进程跟踪
- Linux下C编程,进程通信之标准流管道通信(即系统调用)
- 通过添加系统调用的方式遍历当前进程
- 4.5 进程调度_与调度相关的系统调用
- Linux 2.6 劫持系统调用 隐藏进程
- (转)Linux内核之进程和系统调用
- 进程管理相关的系统调用
- 内存分配的原理__进程分配内存有两种方式,分别由两个系统调用完成:brk和mmap系统调用