日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

第十七篇:获取 / 修改进程资源限制

發布時間:2025/3/21 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第十七篇:获取 / 修改进程资源限制 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

? ? ? ?每個進程都有其使用資源的一個限制,這些資源通常是在進程初始化時由進程 0 所建立的,然后由每個后續進程繼承。

? ? ? ?本文將介紹如何獲取并修改進程的資源限制

獲取資源限制函數:getrlimit()

? ? ? ?原型:int getrlimit (int resource, struct rlimit *rlptr)

? ? ? ?包含于:sys/resource.h

? ? ? ?作用:獲取 resource 資源的限制信息,將其保存在 rlptr 所指向的結構體中。( 后面將給出表示 resource 的宏以及此結構體的定義 )

修改資源限制函數:setrlimit()

? ? ? ?原型:int setrlimit (int resource, const struct rlimit *rlptr)

? ? ? ?包含于:sys/resource.h

? ? ? ?作用:將資源 resource 加上 rlptr 所指結構體所描述的限制。

resource 取值

  

  

資源限制結構體 rlimit

1 struct rlimit { 2 rlim_t rlim_cur; // 軟限制 3 rlim_t rlim_max; // 硬限制 4 };

修改資源限制必須遵循的三條規則

? ? ? ?1. 任何一個進程都可以將一個軟限制更改為小于或等于其硬限制值。

? ? ? ?2. 任何一個進程都可降低其硬限制值,但它必須大于或等于其軟限制值。這種降低對于普通用戶來說是不可逆的。

? ? ? ?3. 只有超級用戶可以提高硬限制值。

代碼實現

? ? ? ?下程序獲取進程的最大棧容量并打印出來:

1 #include <stdio.h> 2 #include <sys/resource.h> 3 4 int main (void) { 5 6 // 定義保存進程資源限制的結構體 7 struct rlimit l; 8 9 // 獲取進程資源限制信息 10 if (getrlimit (RLIMIT_FSIZE, &l)) { 11 printf("獲取資源限制信息出錯\n"); 12 return 1; 13 } 14 15 // 打印資源限制信息 16 printf("軟限: %ld\n硬限: %ld\n", l.rlim_cur, l.rlim_max); 17 18 return 0; 19 }

? ? ? ?運行測試

? ? ? ?

? ? ? ?至于為什么是 -1,這里不去糾結這個問題了。

小結

? ? ? ?要注意更改資源限制的那三條規則。

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的第十七篇:获取 / 修改进程资源限制的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。