对于 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 ...