是Linux文件描述符总是比开放文件限制较小的价值?(Is the value of a Linux

2019-10-17 06:07发布

是一个Linux文件描述符总是小的打开文件限制的“价值”?

从理论上讲,该系统应再使用封闭的文件描述符的标识值。 我应该得到的文件描述符值从0,1,2范围可达1023在默认情况下,在一个进程打开后1021个文件。 如果我想打开另外一个文件,我必须释放一些文件描述符有close和系统当我打电话应当重新使用这些发布的身份open一次。 所以文件描述符的最大整数值应为1023在这种情况下。 那是对的吗 ?

我知道,我可以改变与开放文件限制ulimit -nsetrlimit/proc/sys/fs/file-max 。 我只是想知道我是否能保存打开的套接字文件描述符用char变量,如果我曾与减少打开文件限制到128 setrlimit

Answer 1:

是,这些值被限制为范围从0到大于电流限制少一个使用getrlimit()返回。

从getrlimit()手册页:

  RLIMIT_NOFILE Specifies a value one greater than the maximum file descriptor number that can be opened by this process. Attempts (open(2), pipe(2), dup(2), etc.) to exceed this limit yield the error EMFILE. (Historically, this limit was named RLIMIT_OFILE on BSD.) 

从公开组基本规范:

RLIMIT_NOFILE
这是一个数字一个比系统可以分配到一个新创建的描述符中的最大值。 如果超过这个限制,即分配文件描述符功能应errno设置为[EMFILE]失败。 此限制约束进程可以分配的文件描述符的数量。



文章来源: Is the value of a Linux file descriptor always smaller than the open file limits?
标签: linux