Windows cmd重定向子命令输出到文件

时间:2016-05-13 10:46:44

标签: windows command-line cmd cuda output-redirect

我正在尝试使用cuda-memcheck调试应用程序。我想要做的是将我的应用程序的输出重定向到一个文件,但另一方面,将cuda-memcheck的stdout和stderr重定向到另一个文件。但我无法让它发挥作用。这样:

cuda-memcheck "app.exe > stdout1.txt" > memcheck.log 2>&1

绝对没有。但是如果我删除引号内的重定向(忽略我的app输出),它就会执行。所以问题是,如何重定向子命令的标准输出?

1 个答案:

答案 0 :(得分:1)

根据您对cuda-memcheck行为的评论,您可以使用以下命令。

cuda-memcheck --log-file memcheck.log app.exe >app.stdout.txt

修改

这是我在CentOS上的测试。它可能适用于Win32控制台应用程序,但不适用于Win32应用程序。

a.cu

#include <iostream>
int main () {
    std::cout<< "hello world to stdout!" <<std::endl;
    std::cerr<< "hello world to stderr!" <<std::endl;
    return 0;
}

编译命令:

$ nvcc -O3 -o a a.cu 

运行命令:

$ cuda-memcheck --log-file mem.log a >a.stdout.log 2>a.stderr.log

结果文件:

$ cat mem.log 
========= CUDA-MEMCHECK
========= ERROR SUMMARY: 0 errors

$ cat a.stdout.log 
hello world to stdout!

$ cat a.stderr.log 
hello world to stderr!