# $stdout changing?

**URL:** <https://www.ruby-forum.com/t/stdout-changing/162442>\
**Category:** Ruby\
**Created:** [March 10, 2009, 1:37am UTC](https://www.ruby-forum.com/t/stdout-changing/162442 "2009-03-10T01:37:34Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![enchanter](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/ce7236/32.png) [@enchanter](https://www.ruby-forum.com/u/enchanter)\
**Post date:** [March 10, 2009, 1:37am UTC](https://www.ruby-forum.com/t/stdout-changing/162442/1 "2009-03-10T01:37:34Z")

</div>

Is it possible for me to have output that go to the $stdout go through a  
method instead? ie:

Have stuff go through this:

def write\_to(str)  
@socket.send(str, 0)  
end

?

---

<div class="post-metadata">

**Author:** ![enchanter](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/ce7236/32.png) [@enchanter](https://www.ruby-forum.com/u/enchanter)\
**Post date:** [March 10, 2009, 2:02am UTC](https://www.ruby-forum.com/t/stdout-changing/162442/2 "2009-03-10T02:02:10Z")

</div>

On Mar 9, 2009, at 17:35, Tim M. wrote:

> Is it possible for me to have output that go to the $stdout go  
> through a  
> method instead? ie:
> 
> Have stuff go through this:
> 
> def write\_to(str)  
> @socket.send(str, 0)  
> end

You can assign any object that responds to #write to $stdout.

See also:

[http://blog.segment7.net/articles/2006/08/17/stdout-vs-stdout](http://blog.segment7.net/articles/2006/08/17/stdout-vs-stdout)

---

<div class="post-metadata">

**Author:** ![enchanter](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/ce7236/32.png) [@enchanter](https://www.ruby-forum.com/u/enchanter)\
**Post date:** [March 10, 2009, 10:29am UTC](https://www.ruby-forum.com/t/stdout-changing/162442/3 "2009-03-10T10:29:58Z")

</div>

2009/3/10 Eric H. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> You can assign any object that responds to #write to $stdout.
> 
> See also:
> 
> [http://blog.segment7.net/articles/2006/08/17/stdout-vs-stdout](http://blog.segment7.net/articles/2006/08/17/stdout-vs-stdout)

In this case IO#reopen seems more appropriate IMHO (if it works with  
Sockets, which I did not verify). It’s faster (no Ruby code needed)  
and will also work for sub processes.

Kind regards

robert
