ConsoleクラスのSetIn・SetOut・SetErrorの各メソッドを使うことにより、自プロセスの標準ストリームをリダイレクトすることができます。 (自プロセスの標準入出力 §.標準ストリームのリダイレクト) これと子プロセスの標準ストリームのリダイレクトを組み合わせることにより、自プロセスと子プロセスの標準ストリームをパイプ(pipe)することができます。
標準ストリームをパイプするとは、自プロセスの標準出力の出力先を子プロセスの標準入力の入力元とする、また逆に子プロセスの標準出力の出力先を自プロセスの標準入力の入力元とすることで、これによりプロセス間で標準ストリームを介したやりとりをすることができます。
自プロセス | ⇄ | 子プロセス |
---|---|---|
標準出力 Console.Out |
→ | 標準入力 Console.In |
標準入力 Console.In |
← | 標準出力 Console.Out |
Console.SetIn/SetOut/SetErrorの各メソッドを使って自プロセスの標準ストリームをリダイレクトすると、Consoleクラスでの入出力先はリダイレクト先へと変更されます。 Consoleクラスのデフォルトの入出力ストリームは、プロセスを起動したターミナルやコマンドプロンプト、IDEの出力ウィンドウなどに接続されているため、標準出力・標準エラーをリダイレクトすると以降そこには一切出力されなくなります。