如何使用 C 程序找到最大可能的管道数。它在操作系统级别如何工作? 我猜想管道的最大可能数量将由文件描述符表可以拥有的最大条目决定。这是对的吗?你的见解是什么?
最佳答案
每个管道需要两个 FD。所以答案是 FD 的最大数量减去正在使用的 FD 数量(例如 STDIN、STDOUT、STDERR),然后除以 2。
要查找 FD 的最大数量,请使用
ulimit -n
除此之外,很可能会有更高的操作系统限制。你没有说你正在使用什么操作系统,但在Linux上我相信它是一个内核编译选项(来自内存)。在任何情况下,FD 的数量都不能超过 INT_MAX
。
我发现您想要一个 C 函数来读取此内容。我建议您使用 getrlimit
传递 RLIMIT_NOFILE
关于c - 查找最大管道数的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21287848/