C說話中設置過程優先次序的辦法。本站提示廣大學習愛好者:(C說話中設置過程優先次序的辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是C說話中設置過程優先次序的辦法正文
C說話setpriority()函數:設置法式過程履行優先權
頭文件:
#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:普通用戶沒法下降優先權
C說話getpriority()函數:獲得法式過程履行優先權
頭文件:
#include <sys/time.h> #include <sys/resource.h>
界說函數:
int getpriority(int which, int who);
函數解釋:
getpriority()可用來獲得過程、過程組和用戶的過程履行優先權。參數 which 有三種數值, 參數who 則依which 值有分歧界說。
which who 代表的意義:
1、PRIO_PROCESS who:為過程辨認碼
2、PRIO_PGRP who:為過程的組辨認碼
3、PRIO_USER who:為用戶辨認碼此函數前往的數值介於-20 至20 之間, 代表過程履行優先權, 數值越低代表有較高的優先順序, 履行會較頻仍.
前往值:前往過程履行優先權, 若有毛病產生前往值則為-1 且毛病緣由存於errno.
附加解釋:因為前往值有能夠是-1, 是以要同時檢討errno 能否存有毛病緣由. 最好在挪用次函數前先消除errno變量.
毛病代碼:
1、ESRCH:參數which 或who 能夠有錯, 而找不到相符的過程.
2、EINVAL:參數which 值毛病.
C說話nice()函數:轉變過程優先次序
頭文件:
#include <unistd.h>
界說函數:
int nice(int inc);
函數解釋:nice()用來轉變過程的過程履行優先次序. 參數inc 數值越年夜則優先次序排在越前面, 即表現過程履行會越慢. 只要超等用戶能力應用負的inc 值, 代表優先次序排在後面, 過程履行會較快.
前往值:假如履行勝利則前往0, 不然前往-1, 掉敗緣由存於errno 中.
毛病代碼:
EPERM:普通用戶妄圖轉用負的參數inc 值轉變過程優先次序.