日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

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

前言

? ? ? ?每個進程都有其使用資源的一個限制,這些資源通常是在進程初始化時由進程 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位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

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

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