gpt4 book ai didi

在 C (OSX) 中更改文件描述符限制

转载 作者:太空狗 更新时间:2023-10-29 16:02:32 24 4
gpt4 key购买 nike

我想增加我的 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

最大限制似乎有点太高了。怎么回事?

最佳答案

来自 man setrlimit:

setrlimit() now returns with errno set to EINVAL in places that historically succeeded. ... Use "rlim_cur = min(OPEN_MAX, rlim_max)".

OPEN_MAX 在 中定义为 10240

所以它未能将 rlimit_cur 设置为 19456。

关于在 C (OSX) 中更改文件描述符限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12345688/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com