2

一个系统中可以同时打开的 z/OS UNIX 管道的数量有 8,730 个限制。我写了一个程序来测试是否可以达到这个限制。这个程序我执行了很多次,结果显示第8727个管道的创建会失败。

我猜当 UNIX 程序开始执行时,有 3 个定义明确的管道用于 STDIN、STDOUT、STDERR。但是我找不到任何提到“默认管道”的文件,所以我想知道我的猜测是否正确?

4

2 回答 2

1

如果这是系统范围的限制,那么其他一些东西,一些其他进程,有开放的管道。

管道是指 fifos,它是一种特殊类型的文件,流(stdin、stdout、stderr)不会从管道开始,但它们可以重定向到管道。请参阅您的 man dup() 页面和 mkfifo() 。

于 2012-01-14T13:00:03.663 回答
0

你的猜测是正确的。它们被称为标准流

在 Unix 和类 Unix 操作系统(在某种程度上,Windows)以及某些编程语言接口中,标准流是计算机程序与其环境(通常是文本终端)之间预先连接的输入和输出通道。开始执行。这三个 I/O 连接称为标准输入 (stdin)、标准输出 (stdout) 和标准错误 (stderr)。

于 2012-01-14T10:25:15.423 回答