5
命令行程序可以防止其输出重定向吗?
我已经习惯了这样做: someprogram >output.file 每当我要将程序生成的输出保存到文件时,都会执行此操作。我也知道此IO重定向的两个变体: someprogram 2>output.of.stderr.file (对于stderr) someprogram &>output.stderr.and.stdout.file (对于stdout + stderr组合) 今天,我遇到了一个我认为不可能的情况。我使用以下命令,xinput test 10并且按预期,我将获得以下输出: user @ hostname:〜$ xinput测试10 按键30 密钥释放30 按键40 钥匙扣40 按键32 钥匙扣32 按键65 钥匙扣65 按键61 键释放61 按键31 ^ C 用户@主机名:〜$ 我希望可以像往常一样将此输出保存到文件中xinput test 10 > output.file。但是,当与我的预期相反时,文件output.file仍然为空。这也是为了xinput test 10 &> output.file确保我不会错过stdout或stderr上的某些内容。 我真的很困惑,因此在这里问xinput程序是否可以避免其输出被重定向? 更新 我看了看资料。似乎此代码生成了输出(请参见下面的代码段)。在我看来,输出将由普通的printf生成 //在文件test.c中 静态无效print_events(Display * dpy) { …