nftw需要一个参数来表示要使用的文件句柄的数量。我见过几个将其指定为20的示例(这是POSIX保证的最低值吗?但也可以使用getrlimit或sysconf来获得实际可用的数字)。是否应该将其指定为17,因为已经为stdin/out/err使用了三个文件句柄?或者我误解了它是如何工作的?(类似地,如果我们使用getrlimit或sysconf得到实际的可用数字,我们应该在传递参数之前减去3吗?)
发布于 2011-11-22 19:09:29
文件描述符的数量是进程可以拥有的文件描述符的总数。像sysconf这样的函数不知道它们中的一些是否已经被使用。您可以通过打开许多文件来测试这一点,并且sysconf应该在前后返回相同的值。
标准文件描述符减3可能是个好主意,也许再减几个以防万一。
发布于 2011-11-22 19:03:18
至少为stdin、stdout和stderr保留三个文件描述符似乎是很好的建议。此外,您可以根据自己的需要打开一个或两个描述符。快速浏览一下我的系统,可以看到0和109开放描述符之间的一个范围,其中4非常常见。
https://stackoverflow.com/questions/8225632
复制相似问题