【问题标题】:function to find the maximum number of pipes查找最大管道数的函数
【发布时间】:2014-01-22 16:00:56
【问题描述】:

如何使用 c 程序找到最大可能的管道数。它在操作系统级别如何工作? 我猜最大可能的管道数将由文件描述符表可以拥有的最大条目决定。这是对的吗?你的见解是什么?

【问题讨论】:

  • 答案取决于操作系统。

标签: c operating-system pipe file-descriptor


【解决方案1】:

每个管道需要两个 FD。所以答案是 FD 的最大数量,减去那些正在使用的(例如 STDIN、STDOUT、STDERR),再除以 2。

要查找最大 FD 数,请使用

ulimit -n

除此之外,很可能会有更高的操作系统限制。您没有说您使用的是什么操作系统,但在 Linux 上,我相信它是一个内核编译选项(来自内存)。在任何情况下,FD的数量都不能超过INT_MAX

我看到你想要一个 C 函数来读取这个。我建议你使用getrlimit 传递RLIMIT_NOFILE

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-28
    • 1970-01-01
    • 2022-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多