我正在尝试用C语言实现unix的“nice”命令的另一种风格。我已经看到了系统调用nice()和setpriority()调用的定义。nice()调用只增加/减少进程的优先级。如果我想将一个进程的优先级设置为一个特定值,我不能使用nice()调用吗?基本上,除了如何修改优先级之外,nice()和setpriority()之间有什么不同吗?
发布于 2011-10-01 13:09:27
这是历史。在setpriority()之前很久就引入了nice()。为了向后兼容,保留了nice函数。
发布于 2011-10-01 13:07:37
nice设置您自己的优先级(当前进程的优劣)。setpriority允许您设置其他进程(或进程组或用户)的优良性。可以把它想象成renice。
man 3p nice
int nice(int增量);
man 3p设置优先级
int setpriority(int which,id_t who,Int值);
发布于 2011-10-01 18:24:10
nice()修改了当前进程相对于当前nice值的nice值,所以进程不需要知道它的起始nice值,它只关心它应该对系统更好(例如:一个进程启动一个子进程,这个子进程执行一些后台处理,这个子进程将自己设置为nice值)。
setpriority()用例是用户显式地为特定进程设置绝对值。
https://stackoverflow.com/questions/7618291
复制相似问题