# Getting stdio process ID

**URL:** <https://forum.elixirforum.com/t/getting-stdio-process-id/25317>\
**Category:** Questions\
**Tags:** standard-library\
**Created:** [September 11, 2019, 12:07pm UTC](https://forum.elixirforum.com/t/getting-stdio-process-id/25317 "2019-09-11T12:07:10Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![rvirding](https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/rvirding/32/1409_2.png) [@rvirding](https://forum.elixirforum.com/u/rvirding)\
**Post date:** [September 11, 2019, 1:29pm UTC](https://forum.elixirforum.com/t/getting-stdio-process-id/25317/2 "2019-09-11T13:29:19Z")

</div>

That is because the i/o system and the error handling behave in different ways. For the error handling there is a central server process registered under the name `:standard_error` but this is not case for the i/o system. The best way to view an erlang/elixir system to think OS with many tasks and each one has its own i/o system.

You will find a description of this in the link in the erlang rationale I wrote many years ago [Robert on anything: The Erlang Rationale](http://rvirding.blogspot.com/2008/11/erlang-rationale.html) . Towards the end it describes the i/o system and the “task” structure in erlang. You actually hit when you do a ^G in the shell.

Strangely enough this was the first time much of the rationale for erlang was actually described, about 10-15 years after it was designed. This was because we had so thought about it and discussed it we felt it was self-evident that this was the way it should be done. We found out later that not everyone thought the same way, some had not grasped the beauty of our design. 😄

In [The Erlang I/O Protocol — OTP 29.0.2 (stdlib 8.0.1)](http://erlang.org/doc/apps/stdlib/io_protocol.html) you will find a description of the i/o-protocol as it is today.

---

_[View the full topic](https://forum.elixirforum.com/t/getting-stdio-process-id/25317)._
