http://hi.baidu.com/nullspace/item/50e2c35c0fbb5813aaf6d7d6
这样可以重定向标准出错
a.exe 2>out.txt
但这样就报告:另一个程序正在使用此文件,进程无法访问。
a.exe >out.txt 2>out.txt
这样可以重定向标准出错
a.exe 1>out.txt 2>&1
或
a.exe >out.txt 2>&1
注意2>&1要放在后面
或者
a.exe 1>out.txt 2<&1
测试程序:
#include <iostream>
using namespace std;
int main()
{
cout << "this is out\n";
cerr << "this is err\n";
//fprintf(stdout, "this is out\n");
//fprintf(stderr, "this is err\n");
return 0;
}
cout cerr和fprintf的区别:
重定向时fprintf保持顺序,便cout cerr顺序反了
直接输出到屏幕结果是
this is out
this is err
用cout/cerr,重定向后变成了
this is err
this is out
用fprintf正常