我在我的Ubuntu机器上运行了一个程序(实际上是valgrind),并将stdout和stderr重定向到不同的文件.我很惊讶地看到屏幕上出现一条短信 - 这怎么可能?我怎么能在C++程序中自己做到这一点?
编辑:这是我使用的命令,输出:
$ valgrind ./myprogram > val.out 2> val.err
*** stack smashing detected ***: ./myprogram terminated
Run Code Online (Sandbox Code Playgroud)
EDIT2:玩了一下,事实证明myprogram,而不是valgrind,正在打印消息,并且如下面的回答,它看起来像gcc堆栈粉碎检测代码正在打印到/ dev/tty