当前位置:嗨网首页>书籍在线阅读

26-获取和设置资源限制

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

6.7.2 获取和设置资源限制

前面已经阐述了各种资源限制,现在让我们来考察一下如何获取和设置这些限制。获取资源限制的方法很简单:

293.png 编译包含该代码段的程序,运行时该代码段会输出以下结果:

294.png 可以看到,软限制设置为0,硬限制设置为-1(-1代表没有限制)。因此我们可以设置软连接为任意值。下面的例子设置core文件最大为32MB:

295.png

错误码

出错时,errno可能有三种值:

EFAULT

rlim指向的内存非法或不可访问。

EINVAL

resource值非法,或者rlim.rlim_cur值大于rlim.rlim_max值(仅适用于setrlimit())。

EPERM

调用者要提升硬限制,但没有CAP_SYS_RESOURCE权限。

[1] util-linux 包可以从kernel.org中获取,授权方式是GNU General Public Licence v2。

[2] 注:SysVinit源代码可以在ftp://ftp.cistron.nl/pub/people/miquels/sysvinit/获取,其授权方式是GNU General Public License v2。

[3] 注:此时,调用会设置错误号为EMFILE,表明进程达到文件数量上限。第 2章讨论了open()系统调用。