標準出力

Monaで標準出力を作るべく実験中。Monaには標準出力がないのかと突っ込まれると何もいえませんが・・・。
とりあえずTino GUIの作者のTinoさんが、temporaryで標準出力的なものを作ってくださっていますが
自分で理解したいので「一応」一から作ってみようと思った。


はっきり言って標準出力って何?というレベルなのだが、要はプロセスがprintf("hello")としたときに
実行環境(CUI SHELL/GUI SHELL)によって出力場所が違うのでそれをどうにかしようという感じ。
んで、どこに出力すべきか?はそのプロセスのコンパイル時に決まるなんていう都合の良い話はなくてもちろん実行時に出力先が決まる。


*nixやらWindowsがどのようにこれらの仕組みを実装しているのかはさっぱり分からないので勝手にメッセージングで実装してみる。
登場人物は、「プロセス(出力したい人)」、「ファイルサーバ」、「本当の出力先(シェルとか)」


「本当の出力先」は、今自分が標準出力先ですよと、ファイルサーバーに教えてあげます。出力先-----MSG_GRAB_STDOUT--->ファイルサーバ
「プロセス」は、出力したい文字列をファイルサーバに教えてあげます。プロセス-----MSG_STDOUT--->ファイルサーバ
「ファイルサーバ」は、自分の中に出力先として登録されている「出力先」に文字列を転送してあげます。ファイルサーバ-----MSG_STDOUT---->出力先
「出力先」は自分の思うところに文字列を出力します。

今日はここまで(仕事がデスマーチの予感)