获取打开文件限制

时间:2018-02-08 19:08:25

标签: c++ file-io

是否可以在C ++中可移植地访问当前进程中可以同时打开的最大文件数(例如,unix系统上ulimit -n的结果)?我用C ++编写应用程序,可能需要数百个打开的文件,通常超过系统默认的最大值。超过最大打开文件限制通常会导致难以诊断崩溃,尤其是大多数用户不知道限制。如果我在启动时知道限制,我可能会警告用户潜在的问题,或者在出现问题时给出更好的错误消息。

1 个答案:

答案 0 :(得分:1)

在POSIX兼容系统中(我认为包括Windows):

#include <sys/resource.h>

struct rlimit lim;
getrlimit(RLIMIT_NOFILE, &lim);
rlim_t max_files = lim.rlim_cur;