我试图在C中实现unix的“nice”命令的不同风格。我已经看到了nice()系统调用和setpriority()调用的定义。 nice()调用只增加/减less进程的优先级。 如果我想将进程的优先级设置为特定的值,我不能使用nice()调用吗? 基本上,除了如何修改优先级,nice()和setpriority()之间有什么区别?
这是历史的。 nice()
早在setpriority()
之前被引入。 为了向后兼容, nice
功能被保留了下来。
nice
设置你自己的优先级(当前进程的好处)。 setpriority
让您设置其他进程(或进程组或用户)的setpriority
。 把它想成renice
。
男人3p很好
int nice(int incr);
男人3p setpriority
int setpriority(int which,id_t who,int value);
nice()
修改当前进程相对于当前nice值的好值,所以进程不需要知道它的起始值是多少,它只关心它应该对系统更好(例如:进程启动一个孩子谁做了一些后台处理,孩子设置自己很好)。
setpriority()
用例是明确地为特定进程设置绝对好值的用户。