重定向从可执行文件重定向输出,但不是所有输出重定向?

Ada*_*m S 1 windows redirect

我遇到一个问题,我无法完全重定向可执行文件的输出.为了讨论,让我们说可执行文件是printnames.exe.

如果我这样做printnames.exe(没有重定向),命令窗口中会显示以下输出:

Adam
Tim
Jesse
Sean
Run Code Online (Sandbox Code Playgroud)

但是,如果我这样做printnames.exe > myfile.txt,命令窗口显示:

Tim
Sean
Run Code Online (Sandbox Code Playgroud)

......的内容myfile.txt是:

Adam
Jesse
Run Code Online (Sandbox Code Playgroud)

这怎么可能?代码中的内容会导致这种行为?重定向操作符不应该重定向所有输出吗?

S.L*_*ott 5

这怎么可能?

您有两个输出流.

代码中的内容会导致这种行为?

写入标准输出并写入标准错误.

重定向操作符不应该重定向所有输出吗?

不可以.默认重定向适用于标准输出.

使用2>重定向标准错误.


http://www.gnu.org/software/bash/manual/bashref.html#Redirections