C言語システムコール-getpriority

getpriority

概要

getpriorityはプロセスの優先度を取得します。


Linuxの優先度の範囲は「-20〜19」であり、「-20」が最も高い優先度となります。

Linux本来のシステムコールでは「40(最大)〜1(最低)」という値が用いられていますが、getpriority()内で値が変更されます。

なお、FreeBSDの優先度の範囲は「-20〜20」です。


プロセスの優先度は「niceコマンド」で変更/指定します。


nice -1 ./command

サンプルプログラム

エラー判定には「errno」を使用します。

errnoを0クリアしておき、エラー判定を行う必要があります。



#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <errno.h>
#include <sys/time.h>
#include <sys/resource.h>

int
main(void)
{
    int prio = 0;

    /* errnoを0クリアする必要がある */
    errno = 0;

    prio = getpriority(PRIO_PROCESS, 0);
    if(errno != 0){
        printf("Error: getpriority(%d) %s\n", errno, strerror(errno));
        return(-1);
    }
    printf("priority=%d\n", prio);

    return(0);
}

関連ページ