2016-09-11 7 views
0

プログラム(Unixスタイル)を書くとき、複数のstdoutとstdinチャンネルを扱い、管理できますか?プロセスは複数のstdoutとstdinを持つことができますか?

+0

これは、プロセスが複数の標準出力を持つことを意味すると思います。 'printf'の出力はどこに行くのでしょうか? – Dolda2000

+0

私は、オーバーロードされたメソッドを使ってプリントする特定のチャンネルを選択する方法を想像していたでしょう。私はwebsocketdデーモンを見ていて、書き込み先の新しい宛先ストリームを取得する長期実行プロセスとしてアクターを実装することができますか?私はソケットや他の軽量の通信ストリームを使って作業することが次善の選択肢だと思っていますが、私はsrd stdoutのシンプルさを求めていました。 – schrepfler

+0

その場合、 'fopen()'と 'fprintf()'を探しているように聞こえるのですか、何か誤解していますか? – Dolda2000

答えて

3

いいえ;ある時点で標準入力と標準出力が(最大でも)1つあります。最終的にはUnixを具体的に言及しているので、標準入力はファイル記述子0であり、標準出力はファイル記述子1であり、指定された数のファイル記述子は1つだけです。

0

定義によれば、1つの標準入力と1つの標準出力しかありません。

ただし、名前付きパイプを調べることができます。名前付きパイプを使用すると、次のようなことができます。

mkfifo pipe1 
mkfifo pipe2 
cat a.a > pipe1 
cat b.b > pipe2 
yourapp pipe1 pipe2 
関連する問題