是否可以在C ++中可移植地访问当前进程中可以同时打开的最大文件数(例如,unix系统上ulimit -n
的结果)?我用C ++编写应用程序,可能需要数百个打开的文件,通常超过系统默认的最大值。超过最大打开文件限制通常会导致难以诊断崩溃,尤其是大多数用户不知道限制。如果我在启动时知道限制,我可能会警告用户潜在的问题,或者在出现问题时给出更好的错误消息。
答案 0 :(得分:1)
在POSIX兼容系统中(我认为包括Windows):
#include <sys/resource.h>
struct rlimit lim;
getrlimit(RLIMIT_NOFILE, &lim);
rlim_t max_files = lim.rlim_cur;