接口
int getpriority(int which, int who);返回一组进程的优先级
setpriority(int which, int who, prio)
nice(prio)
详细参考:获取设置进程优先级
示例
父进程,设置、获取其pid
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<time.h>
#include<stddef.h>
#include<stdarg.h> //va_list宏
#include<unistd.h> //write()
#include <dirent.h>
#include <sys/stat.h>
#include<time.h>
#include <wchar.h>
//#include<linux/list.h>
//#include <linux/list.h>
#include<fcntl.h>
#include<sys/types.h>
#include<sys/wait.h>
#include <signal.h>
#include <sys/resource.h> //getpriority
int main(int argc, char *argv[])
{
int prio = 0;
int nice_prio = 5;
int set_prio = -3;
pid_t pid;
pid = fork();
if(pid > 0)
{
printf("father : %d\n", getpid());
prio = getpriority(PRIO_PROCESS, getpid());
printf("get prio : %d \n", prio);
nice(nice_prio);
prio = getpriority(PRIO_PROCESS, getpid());
printf("set nic %d, real prio : %d \n", nice_prio, prio);
setpriority(PRIO_PROCESS, getpid(), set_prio);
prio = getpriority(PRIO_PROCESS, getpid());
printf("set prio %d, real prio : %d \n", set_prio, prio);
}
else if(pid == 0)
{
//printf("child exit\n");
exit(0);
}
else
{
printf("error\n");
}
return 0;
}