from:
功能描述:
獲取或設定資源使用限制。每種資源都有相關的軟硬限制,軟限制是核心強加給相應資源的限制值,硬限制是軟限制的最大值。非授權調 用程序只可以將其軟限制指定為0~硬限制範圍中的某個值,同時能不可逆轉地降低其硬限制。授權程序可以任意改變其軟硬限制。rlim_infinity的 值表示不對資源限制。
用法:include
#include
int getrlimit(int resource, struct rlimit *rlim);
int setrlimit(int resource, const struct rlimit *rlim);
引數:resource:可能的選擇有
rlimit_as //程序的最大虛記憶體空間,位元組為單位。
rlimit_core //核心轉存檔案的最大長度。
rlimit_cpu //最大允許的cpu使用時間,秒為單位。當程序達到軟限制,核心將給其傳送sigxcpu訊號,這一訊號的預設行為是終止程序的執行。然而,可以捕捉信 號,處理控制代碼可將控制返回給主程式。如果程序繼續耗費cpu時間,核心會以每秒一次的頻率給其傳送sigxcpu訊號,直到達到硬限制,那時將給程序傳送 sigkill訊號終止其執行。
rlimit_data //程序資料段的最大值。
rlimit_fsize //程序可建立的檔案的最大長度。如果程序試圖超出這一限制時,核心會給其傳送sigxfsz訊號,預設情況下將終止程序的執行。
rlimit_locks //程序可建立的鎖和租賃的最大值。
rlimit_memlock //程序可鎖定在記憶體中的最大資料量,位元組為單位。
rlimit_msgqueue //程序可為posix訊息佇列分配的最大位元組數。
rlimit_nice //程序可通過setpriority() 或 nice()呼叫設定的最大完美值。
rlimit_nofile //指定比程序可開啟的最大檔案描述詞大一的值,超出此值,將會產生emfile錯誤。
注:修改該軟限制值會影響sysconf函式在引數_sc_open_max中到返回值。
rlimit_nproc //使用者可擁有的最大程序數。
注:修改該軟限制值會影響sysconf函式在引數_sc_child_max中到返回值(見下方測試**)。
rlimit_rtprio //程序可通過sched_setscheduler 和 sched_setparam設定的最大實時優先順序。
rlimit_sigpending //使用者可擁有的最大掛起訊號數。
rlimit_stack //最大的程序堆疊,以位元組為單位。
rlim:描述資源軟硬限制的結構體,原型如下
struct rlimit ;
返回說明:
成功執行時,返回0。失敗返回-1,errno被設為以下的某個值
efault:rlim指標指向的空間不可訪問
einval:引數無效
eperm:增加資源限制值時,權能不允許
簡單的測試用例:
#include #include #include #include using namespace std;
int main()
{ #ifdef _sc_child_max
cout << sysconf(_sc_child_max)<< endl;
#endif
struct rlimit b;
#ifdef rlimit_nproc
getrlimit(rlimit_nproc,&b);
cout<
15982
15982:15982
1598
1598:15981
linux程序中常用的全域性資料之環境變數
常見環境變數列表如下 注 該圖 unix環境高階程式設計 一書 可用如下 測試該環境變數是否定義 include include using namespace std int main int argc,char argv char re for int i 1 i sysylh ubuntu c...
sqlserver中常用的全域性變數
變數 transact sql語言中有兩種形式的變數,一種是使用者自己定義的區域性變數,另外一種是系統提供的全域性變數。區域性變數 區域性變數是乙個能夠擁有特定資料型別的物件,它的作用範圍僅限制在程式內部。區域性變數可以作為計數器來計算迴圈執行的次數,或是控制迴圈執行的次數。另外,利用區域性變數還可...
linux中常用的命令
eg man ls 就可以檢視ls相關的用法 注 按q鍵或者ctrl c退出,在linux下可以使用ctrl c終止當前程式執行。2.ls 檢視目錄或者檔案的屬性,列舉出任一目錄下面的檔案 eg ls usr man ls l a.d表示目錄 directory 如果是乙個 表示是檔案,如果是l則表...