显示反引号之间调用的程序输出

时间:2012-11-22 04:47:04

标签: c linux xterm termcap

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

$> ./my_program foo1 foo2 foo3

或者像这样:

$> ls `my_program foo1 foo2 foo3`

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

在我的程序中,除了以下内容外,我不能使用任何内置函数: •ioctl •tcsetattr •tcgetattr •tgetent •tgoto •tputs •tgetstr •tparm •打开 • 关 •写 •malloc • 自由 •阅读 • 出口 •信号

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

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

1 个答案:

答案 0 :(得分:3)

您可以在/dev/tty中打开并写信至my_program,它只会发送到终端而不是重定向的标准输出。