0

termcaps に関する演習では、アイテムのリストを表示し、ユーザーがそれらのいくつかを選択できるようにするプログラムを作成する必要があります。プログラムは、選択した項目をスペースで区切って出力します。プログラムは次のように呼び出すことができます。

$> ./my_program foo1 foo2 foo3

またはこのように:

$> ls `my_program foo1 foo2 foo3`

私のプログラムは最初のケースでは問題なく動作しますが、2 番目のケースでは my_program の stdout がバッククォートによってインターセプトされ、端末に表示されません。いくつかの項目をやみくもに選択すると、ls から期待どおりの結果が得られたので、プログラムが正常に実行されていることがわかります。

私のプログラムでは、次の関数を除いて組み込み関数を使用できません。

2 番目のケースのように呼び出されたときに、my_program の stdout をユーザーに表示するにはどうすればよいですか?

編集:私が見つけた唯一のオプションは、すべてを標準エラー出力に出力し、選択した項目を標準出力に出力することです...

4

1 に答える 1

3

開いて書き込むことができます/dev/ttymy_programリダイレクトされた標準出力ではなく、端末に対してのみ行われます。

于 2012-11-22T05:42:40.883 に答える