C語言系統資源控制(getrlimit && setrlimit)
每一個程式都有自己的一組資源限制,在Linux系統中我們可以通過
#include<sys/resource.h>
int getrlimit(int resource, struct rlimit *rlim);
int setrlimit(int resource, const struct rlimit*rlim);
這2個API來取得和設定資源。
getrlimit用來取得,setrlimit用來設定。這二個引數都需要一個要控制的資源,比如控制CPU、記憶體、檔案描述符個數等等的控制,作為第一個引數傳入,第二個引數是一個rlimit的結構體地址(指標),他的結構如下定義:
定義放在標頭檔案/usr/include/bits/resource.h中
struct rlimit
{
rlim_t rlim_cur;
rlim_t rlim_max;
};
結構體中,rlim_cur是要取得或設定的資源軟限制的值,rlim_max是硬限制。
這兩個值的設定有一個小的約束:
1) 任何程式可以將軟限制改為小於或等於硬限制
2) 任何程式都可以將硬限制降低,但普通使用者降低了就無法提高,該值必須等於或大於軟限制
3) 只有超級使用者可以提高硬限制
一個無限的限制由常量RLIM_INFINITY指定(The value RLIM_INFINITY denotes no limit on a resource )
RLIMIT_AS
The maximum size of the process鈙 virtual
memory (address
space) inbytes. This limit affects callsto brk(2), mmap(2)
and mremap(2), which fail with the error ENOMEM upon exceeding
this limit. Also automatic stack expansion will fail(and gen-
erate a SIGSEGV that kills the process when no alternate stack
has been madeavailable). Since
相關文章
- setrlimit函式限制程序資源MIT函式
- C語言 16 系統庫C語言
- 作業系統與c語言作業系統C語言
- SQL語言基礎(資料控制語言)SQL
- C語言實戰!!!:商城系統模擬C語言
- C語言學生管理系統原始碼C語言原始碼
- C語言職工工資管理系統C語言
- C語言完美體系C語言
- 學生資訊管理系統(c語言實訓)C語言
- 資料結構 課程設計 員工管理系統(C語言)資料結構C語言
- C語言:發工資C語言
- C語言課程訓練系統題-字串cquptC語言字串
- Rust語言開發資源Rust
- win10系統控制皮膚中沒有語言項如何切換語言快捷鍵Win10
- java開發系統核心:使用C語言開發系統應用程式JavaC語言
- Solaris 更改系統語言
- C語言 C語言野指標C語言指標
- C語言---“C語言 誰與爭鋒?”C語言
- getrlimit()函式MIT函式
- 如何系統學習C 語言(下)之 檔案篇
- 如何系統學習C 語言(上)之 基礎篇
- 微控制器-C語言-定義和申明C語言
- C語言資料型別C語言資料型別
- 獲取系統語言/當前 App支援語言APP
- C語言C語言
- 國產系統級程式語言與編譯器,輕鬆與 C 語言進行互動編譯
- ModStart系統多語言支援
- 基於陣列的學生管理系統【C語言版】陣列C語言
- 作業系統實驗:銀行家演算法(C語言)作業系統演算法C語言
- 【作業系統】銀行家演算法實現(C語言)作業系統演算法C語言
- C語言編寫作業系統有什麼好處C語言作業系統
- 如何系統學習C 語言(中)之 結構體篇結構體
- 【C語言課程設計】學生學籍管理系統C語言
- “c語言+結構體+連結串列”實現名片系統C語言結構體
- 值得學習的C語言開源專案C語言
- 基於檔案管理的學生資訊管理系統(C語言/C++)C語言C++
- day_07C語言運算子及流程控制C語言
- 51微控制器C語言延時函式C語言函式