我想增加在 OSX 10.7 上运行的 C 程序可用的文件描述符的最大数量。我已将以下代码添加到我的项目中,但它失败了!
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
最高限额似乎有点太高了。这是怎么回事?