我想增加我的C程序可用的最大文件描述符数,该程序在OSX 10.7上运行。我已将以下代码添加到我的项目中,但它失败了!
struct rlimit limit;
if(getrlimit(RLIMIT_NOFILE, &limit))
{
perror("Failed to get limit");
return -1;
}
printf("%llu, %llu\n", limit.rlim_cur, limit.rlim_max);
limit.rlim_cur *= 4;
printf("%llu, %llu\n", limit.rlim_cur, limit.rlim_max);
if(setrlimit(RLIMIT_NOFILE, &limit))
{
perror("Failed to set limit");
return -1;
}
打印日志:
4864, 9223372036854775807
19456, 9223372036854775807
Failed to set limit: Invalid argument
最高限额似乎有点过高。发生了什么事?