1048577 是 Ubuntu 中打开文件的限制吗?如果我尝试以下代码,它就会起作用。
但是,如果我将值更改为 1048578,setrlimit 函数将返回代码 1,并且 errno 也将设置为 1。
int l;
struct rlimit rl;
rl.rlim_cur = 1048577;
rl.rlim_max = 1048577;
l = setrlimit(RLIMIT_NOFILE, &rl);
if(l != 0){
errx(1, "setrlimit returned result %d", errno);
}
我以 root 身份运行它并使用 GCC 4.6.3 进行编译
答案1
你已经达到了内核最大值(NR_OPEN),参见
cat /proc/sys/fs/nr_open