thinkhy
thinkhy

Reputation: 933

Is there any well defined pipes such as stdin, stdout and stderr in a process?

There is a limit of 8,730 on the number of z/OS UNIX pipes that can be concurrently open in a system. I wrote a program to test if this limit can be reached. I executed this program many times, and the result shows that the creation of the 8727th pipe will fail.

I guess there are 3 well-defined pipes for STDIN, STDOUT, STDERR defined when a UNIX program begins to execute. But I can't find any documents that mention the 'default pipes', so I wonder if my guess is correct?

Upvotes: 2

Views: 469

Answers (2)

jim mcnamara
jim mcnamara

Reputation: 16399

If this is a system-wide limit, then something else, some other process, has open pipes.

By pipes you mean fifos, which are a special type of file, streams (stdin, stdout, stderr) do not start out life as pipes, but they can be redirected to pipes. See your man dup() page, and mkfifo() as well.

Upvotes: 1

Unpaid Oracles
Unpaid Oracles

Reputation: 2267

Your guess is correct. They are called standard streams.

In Unix and Unix-like operating systems (and, to some extent, Windows), as well as certain programming language interfaces, the standard streams are preconnected input and output channels between a computer program and its environment (typically a text terminal) when it begins execution. The three I/O connections are called standard input (stdin), standard output (stdout) and standard error (stderr).

Upvotes: 0

Related Questions