0
  1. ulimit -n是 perl 不能通过system``直接调用的内部 shell。那么当我想获取 ulimit 值时 perl 如何处理它
  2. ulimit -nsh -c ulimit -n拥有不同的价值观。当我使用ulimit -n该值为 1024 但当我使用时sh -c ulimit -n该值是无限的。
4

3 回答 3

3

对于问题 #2,您需要引用命令:

sh -c 'ulimit -n'

你这样做的方式相当于:

sh -n -c ulimit

并且ulimit没有选项等同于ulimit -f.

于 2013-04-03T04:40:43.253 回答
1

程序不必使用ulimit来获取打开文件描述符的最大数量——事实上,ulimit必须从其他地方获取该值!令人惊讶的是,Perl 函数BSD::Resource::getrlimit只是调用了一个名为 C 的函数,getrlimit并使用它直接从操作系统中检索值,与ulimit获取它的方式相同。

于 2013-04-03T04:57:35.660 回答
0

对于您的第一个问题,请在此处检查:

设置 ulimit

对于第二点,

用于:

sh -c 'ulimit -n'

如果您检查手册页:

如果存在 -c 选项,则从字符串中读取命令。如果字符串后面有参数,则将它们分配给位置参数,从 $0 开始。

于 2013-04-03T04:43:45.663 回答