ulimit -n
是一个内部shell,perl无法直接由system
或``
调用。那么当我想获得ulimit值时,perl如何处理它ulimit -n
和sh -c ulimit -n
具有不同的值。当我使用ulimit -n
时,该值为1024,但当我sh -c ulimit -n
时,该值为无限制。答案 0 :(得分:3)
对于问题#2,您需要引用命令:
sh -c 'ulimit -n'
你这样做的方式相当于:
sh -n -c ulimit
和ulimit
没有选项相当于ulimit -f
。
答案 1 :(得分:1)
程序不必使用ulimit
来获取最大数量的打开文件描述符 - 事实上,ulimit
必须从其他地方获取该值! Perl函数BSD::Resource::getrlimit
只是调用名为getrlimit
的C函数,并使用它来直接从操作系统中检索值,就像ulimit
获取它一样。
答案 2 :(得分:0)
在这里查看您的第一个问题:
第二点,
用作:
sh -c 'ulimit -n'
如果您查看手册页:
如果存在-c选项,则从字符串中读取命令。如果字符串后面有参数,则将它们分配给位置参数,从$ 0开始。