系统调用接口
/**
* sched_setscheduler - change the scheduling policy and/or RT priority of a thread.
* @p: the task in question.
* @policy: new policy.
* @param: structure containing the new RT priority.
*
* Return: 0 on success. An error code otherwise.
*
* NOTE that the task may be already dead.
*/
int sched_setscheduler(struct task_struct *p, int policy,
const struct sched_param *param);
函数返回值0为成功 其他值为失败
测试代码
#include <stdio.h>
#include <sched.h>
int main()
{
struct sched_param my_param;
my_param.sched_priority =20;
if(sched_setscheduler(getpid(),SCHED_FIFO,&my_param)){
printf("set schedller fail....\n");
perror("\n");
return -1;
}
printf("set scheduler success\n");
while(1)
{};
return 0;
}
编译之后运行 运行时需要加上sudo 否则会设置失败。
然后终端查看进程的调度策略