在进程中是否有任何定义良好的管道,如stdin,stdout和stderr?

时间:2012-01-14 10:20:09

标签: unix operating-system pipe zos

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

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

2 个答案:

答案 0 :(得分:1)

如果这是系统范围的限制,那么其他一些其他进程就会打开管道。

通过管道你的意思是fifos,它是一种特殊类型的文件,stream(stdin,stdout,stderr)不会像管道一样开始生命,但它们可以被重定向到管道。请参阅你的man dup()页面和mkfifo()。

答案 1 :(得分:0)

你的猜测是正确的。它们被称为standard streams

  

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