C語言setpriority()函式:設定程式程式執行優先權

2puT發表於2016-07-22
相關函式:getpriority, nice

標頭檔案:#include <sys/time.h>    #include <sys/resource.h>

定義函式:int setpriority(int which, int who, int prio);

函式說明:setpriority()可用來設定程式、程式組和使用者的程式執行優先權。引數which 有三種數值, 引數who 則依which 值有不同定義。

which who 代表的意義:
1、PRIO_PROCESS who 為程式識別碼
2、PRIO_PGRP who 為程式的組識別碼
3、PRIO_USER who 為使用者識別碼


引數prio 介於-20 至20 之間. 代表程式執行優先權, 數值越低代表有較高的優先次序, 執行會較頻繁. 此優先權預設是0, 而只有超級使用者 (root)允許降低此值.

返回值:
執行成功則返回0, 如果有錯誤發生返回值則為-1, 錯誤原因存於errno.

1、ESRCH:引數which 或who 可能有錯, 而找不到符合的程式
2、EINVAL:引數which 值錯誤.
3、EPERM:許可權不夠, 無法完成設定
4、EACCES:一般使用者無法降低優先權

相關文章