手上一个小项目,需要获取一个当前Linux操作系统下,一个进程能打开的最大文件数目,在《linux程序设计 第4版》 85页有说:
任何一个运行中的程序能够同时打开的文件数是有限制的,这个限制通常是由limits.h头文件中的常量OPEN_MAX定义的,它的值随系统的不同而不同,但POSIX要求它至少为16!
但我尝试使用该宏时,却已经找不到该宏的定义了,查了一下资料,才知道2.6.24以后的内核,OPEN_MAX不在linux/limits.h里面定义了。传送门
然后我查看了一下本地的头文件,确实没发现OPEN_MAX的定义了!
命令:
grep -rn --col OPEN_MAX /usr/include
新的资源管理机制
现在OPEN_MAX已经取消,已经变成了资源限制RLIMIT_NOFILE的

在Linux系统中,获取一个进程能打开的最大文件数量通常由`OPEN_MAX`定义,但2.6.24之后的内核不再在`linux/limits.h`中定义此宏。现在,该限制成为资源限制`RLIMIT_NOFILE`的一部分,可以通过程序动态获取。要查看或修改当前系统和进程的最大文件打开数,可以使用特定的命令和程序。
最低0.47元/天 解锁文章
170

被折叠的 条评论
为什么被折叠?



