nftw文件句柄的总数或可用数量

时间:2011-11-22 10:55:13

标签: c unix posix

nftw需要一个参数来表示要使用的文件句柄数。我看过几个例子,将其指定为20(这是POSIX保证的最小值?但也可以使用getrlimitsysconf来获取实际可用的数量)。是不应该将其指定为17,因为stdin / out / err已经使用了三个文件句柄?或者我误解了它是如何工作的? (同样,如果我们使用getrlimitsysconf得到实际可用的数字,我们应该在传递参数之前减去3吗?)

2 个答案:

答案 0 :(得分:1)

至少为stdin,stdout和stderr打开三个文件描述符听起来像是一个很好的建议。此外,您可能会根据自己的需要打开一个或两个描述符。快速扫描我的系统会显示0109个开放描述符之间的范围,4非常常见。

答案 1 :(得分:1)

文件描述符的数量是进程可以拥有的文件描述符的总数。像sysconf这样的函数不知道是否已经使用过其中一些函数。您可以通过打开多个文件来测试这一点,sysconf应该在之前和之后返回相同的值。

为标准文件描述符减去3可能是个好主意,为了以防万一,可能还有几个。