我将我的 c 程序的 stderr 和 stdout 的输出重定向到两个文件,然后恢复原始的 stdout 和 stderr:
int sout = dup(fileno(stdout));
freopen("test.txt","w",stdout);
int serr = dup(fileno(stderr));
freopen("test.txt","a",stderr);
//some output....
dup2(sout,fileno(stdout));
close(sout);
dup2(serr,fileno(stderr));
close(serr);
这就是代码示例。这行得通。
但是我想将 stdout 和 stderr 重定向到同一个文件(然后再次恢复它),以便在不重定向 stderr 和 stdout 时,输出的排序顺序与控制台输出上的排序顺序相同。我怎样才能做到这一点?