用于查找最大管道数的功能

时间:2014-01-22 16:00:56

标签: c operating-system pipe file-descriptor

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

1 个答案:

答案 0 :(得分:0)

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

要查找最大FD数,请使用

ulimit -n

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

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