0

对于 termcaps 的练习,我必须编写一个程序来显示项目列表并让用户选择其中的一些。然后程序将输出以空格分隔的选定项目。该程序可以这样调用:

$> ./my_program foo1 foo2 foo3

或像这样:

$> ls `my_program foo1 foo2 foo3`

我的程序在第一种情况下运行良好,但在第二种情况下,my_program 的 stdout 被反引号拦截,不会显示在终端上。我知道程序运行良好,因为如果我盲目地选择一些项目,我会从 ls 得到预期的结果。

在我的程序中,我不能使用任何内置函数,但以下除外: • ioctl • tcsetattr • tcgetattr • tgetent • tgoto • tputs • tgetstr • tparm • open • close • write • malloc • free • read • exit • signal

在第二种情况下调用时,如何向用户显示 my_program 的标准输出?

编辑:我发现的唯一选择是将所有内容输出到stderr并将所选项目输出到stdout ...

4

1 回答 1

3

您可以打开并写入/dev/ttyin my_program,它只会写入终端而不是重定向的标准输出。

于 2012-11-22T05:42:40.883 回答