• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            QuXiao

            每天進(jìn)步一點(diǎn)點(diǎn)!

              C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
              50 隨筆 :: 0 文章 :: 27 評論 :: 0 Trackbacks

            進(jìn)程在運(yùn)行時,會占用計算機(jī)的各種資源,比如CPU時間、內(nèi)存、文件等等。但是,進(jìn)程是不可以占用無限多的資源的,操作系統(tǒng)會給進(jìn)程設(shè)定所使用資源的上限。想獲取這些資源的上限值,是需要調(diào)用getrlimit()即可。

            int getrlimit(int resource, struct rlimit *rlptr);

            第一個參數(shù)是資源,有哪些資源呢?

            資源 粗略含義

            RLIMIT_AS

            進(jìn)程可使用的內(nèi)存的最大值

            RLIMIT_CORE

            核心文件(core file)的最大值

            RLIMIT_CPU

            CPU時間最大值

            RLIMIT_DATA

            數(shù)據(jù)段(已初始化數(shù)據(jù)+未初始化數(shù)據(jù)+堆)的最大值

            RLIMIT_FSIZE

            新建文件的最大字節(jié)數(shù)

            RLIMIT_LOCKS

            持有的鎖的最大數(shù)

            RLIMIT_MEMLOCK

            鎖定內(nèi)存的最大字節(jié)數(shù)

            RLIMIT_NOFILE

            打開文件的最大數(shù)目

            RLIMIT_NPROC

            每個實際用戶(real user)的最大子進(jìn)程數(shù)目

            RLIMIT_RSS

            RSS(Resident Set Size)的最大字節(jié)數(shù)

            RLIMIT_SBSIZE

            socket buffer的最大字節(jié)數(shù)

            RLIMIT_STACK

            進(jìn)程棧的最大字節(jié)數(shù)

            RLIMIT_VMEM

            與RLIMIT_AS含義一致

            第二個參數(shù)是rlimit,rlimit結(jié)構(gòu)是這樣的:

            struct rlimit
            {
                rlim_t rlim_cur; /* soft limit: current limit */
                rlim_t rlim_max; /* hard limit: maximum value for rlim_cur */
            };

            其中含有軟限制和硬限制。超級用戶可以增加硬限制;一般用戶可以降低硬限制,但不能增加硬限制,一般用戶還可修改軟限制,但修改的軟限制不能超過硬限制。

            實際運(yùn)行的效果如何呢?實踐一下吧!

            #include <stdio.h>
            #include <sys/resource.h>
            
            #define doit(name) pr_limit(#name, name)
            
            void pr_limit(char* name, int resource);
            
            int main ()
            {
            	printf("resource name  soft\thard \n");
            #ifdef  RLIMIT_AS
            	doit(RLIMIT_AS);
            #endif
            	doit(RLIMIT_CORE);
            	doit(RLIMIT_CPU);
            	doit(RLIMIT_DATA);
            	doit(RLIMIT_FSIZE);
            #ifdef  RLIMIT_LOCKS
            	doit(RLIMIT_LOCKS);
            #endif
            #ifdef  RLIMIT_MEMLOCK
            	doit(RLIMIT_MEMLOCK);
            #endif
            	doit(RLIMIT_NOFILE);
            #ifdef  RLIMIT_NPROC
            	doit(RLIMIT_NPROC);
            #endif
            #ifdef  RLIMIT_RSS
            	doit(RLIMIT_RSS);
            #endif
            #ifdef  RLIMIT_SBSIZE
            	doit(RLIMIT_SBSIZE);
            #endif
            	doit(RLIMIT_STACK);
            #ifdef  RLIMIT_VMEM
            	doit(RLIMIT_VMEM);
            #endif
            
            	return 0;
            }
            
            
            void pr_limit(char* name, int resource)
            {
            	struct rlimit limit;
            	if ( getrlimit(resource, &limit) < 0 )
            	{
            		printf("getrlimit error!\n");
            		return;
            	}
            	printf("%-14s ", name);
            	if ( limit.rlim_cur == RLIM_INFINITY )
            		printf("infinite ");
            	else
            		printf("%8ld ", limit.rlim_cur);
            
            	if ( limit.rlim_max == RLIM_INFINITY )
            		printf("infinite ");
            	else
            		printf("%8ld ", limit.rlim_max);
            	putchar('\n');
            } 

             

            運(yùn)行的結(jié)果:

            resource name  soft	hard 
            RLIMIT_AS      infinite infinite 
            RLIMIT_CORE           0 infinite 
            RLIMIT_CPU     infinite infinite 
            RLIMIT_DATA    infinite infinite 
            RLIMIT_FSIZE   infinite infinite 
            RLIMIT_LOCKS   infinite infinite 
            RLIMIT_MEMLOCK    65536    65536 
            RLIMIT_NOFILE      1024     1024 
            RLIMIT_NPROC   infinite infinite 
            RLIMIT_RSS     infinite infinite 
            RLIMIT_STACK    8388608 infinite 
            posted on 2011-02-18 21:55 quxiao 閱讀(695) 評論(0)  編輯 收藏 引用

            只有注冊用戶登錄后才能發(fā)表評論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            久久综合给久久狠狠97色| 九九精品久久久久久噜噜| 久久久国产乱子伦精品作者| 精品国产99久久久久久麻豆| 久久天天躁狠狠躁夜夜avapp| 精品无码久久久久久午夜| 香蕉久久一区二区不卡无毒影院| 青青草原1769久久免费播放| 久久婷婷五月综合色99啪ak | 国产精品99精品久久免费| 国产精品久久国产精品99盘 | 久久久久99精品成人片| 久久夜色精品国产噜噜亚洲a| 波多野结衣中文字幕久久| 精品久久久一二三区| 国产欧美一区二区久久| 思思久久精品在热线热| 一本久久a久久精品综合夜夜| 精品熟女少妇AV免费久久| 国产精品欧美久久久久无广告| 久久久久久亚洲精品影院| 天天久久狠狠色综合| 伊人色综合久久天天人手人婷| 精品久久久久中文字幕一区| 久久久无码精品亚洲日韩按摩| 久久久久婷婷| 久久精品一区二区影院| 东京热TOKYO综合久久精品| 国内精品久久久久久久久电影网 | 久久经典免费视频| 久久人人爽人人爽人人片AV麻豆| 国产精品99久久免费观看| 久久亚洲精品国产精品| 伊人久久精品无码av一区| 久久久中文字幕日本| 久久国产热这里只有精品| 国产精品美女久久久网AV| 中文字幕亚洲综合久久2| 久久精品国产半推半就| 2020最新久久久视精品爱| 久久九九有精品国产23百花影院|