64位Linux上的文件描述符范围是什么?

前端之家收集整理的这篇文章主要介绍了64位Linux上的文件描述符范围是什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用epoll_wait编写一个程序来等待64位 Linux上的文件描述符,并且我尝试将一些信息与文件描述符一起放在epoll_event用户数据中.

我知道实际上文件描述符不可能超过32位.只是想知道内核是否保证文件描述符具有特定的范围,或者它只是从小数量计算并且不太可能变得非常大?

解决方法

用于添加文件描述符的epoll_ctl(2)接口采用int fd参数,因此您已经限制在32位范围内(至少在我熟悉的Linux平台上).

您还受到/ proc / sys / fs / file-max系统范围限制所有进程的打开文件数量的限制; / proc / sys / fs / file-max目前在我的系统上是595956.

通过对打开文件数量的setrlimit(2)RLIMIT_NOFILE每进程限制进一步限制每个进程. 1024是常见的RLIMIT_NOFILE限制. (通过/etc/security/limits.conf更改此限制非常容易.)

这是一个罕见的应用程序,需要超过1024.完整的32位似乎不太可能,因为每个打开的文件将需要一些内核内存来表示 – 40亿~280字节结构inode结构(至少)是很多固定记忆.

猜你在找的Linux相关文章