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

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

概述我正在使用epoll_wait编写一个程序来等待64位 Linux上的文件描述符,并且我尝试将一些信息与文件描述符一起放在epoll_event用户数据中. 我知道实际上文件描述符不可能超过32位.只是想知道内核是否保证文件描述符具有特定的范围,或者它只是从小数量计算并且不太可能变得非常大? 用于添加新文件描述符的epoll_ctl(2)接口采用int fd参数,因此您已经限制在32位范围内(至少 我正在使用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结构(至少)是很多固定记忆.

总结

以上是内存溢出为你收集整理的64位Linux上的文件描述符范围是什么?全部内容,希望文章能够帮你解决64位Linux上的文件描述符范围是什么?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1049589.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存