问题背景:
我运行了以下类似的命令:
$ valgrind ./my_program < 1.in
我能够获取Valgrind的泄漏和错误信息,以及my_program的标准输出stdout和标准错误stderr流。
问题:
我想要重定向/静音my_program的所有流(包括stdout和stderr)。
到目前为止我学到了以下知识:
运行
> /dev/null
不能静音my_program的stderr流。运行
> /dev/null 2> /dev/null
会一起静音my_program的所有输出流和Valgrind的消息。根据这个线程:How to redirect Valgrind's output to a file?,可以使用
valgrind --log-file="filename"
直接将Valgrind的输出流式传输到日志文件中。
可能的解决方案:
我想出了以下解决方案:
$ valgrind --log-file="filename" ./my_program < 1.in && cat filename
有没有更简单的方法来完成这个任务?
--log-fd
的内容,但是没有。 - Mateusz Piotrowskivalgrind --log-fd=9 ./app < test.in 1>/dev/null
。这个解决方案可以打印Valgrind的信息并隐藏应用程序的输出。 - Mateusz Piotrowski